当我执行SELECT * FROM table时,返回的行集并不包含表中的所有列。它不包含最近添加的列。不过,structure选项卡在phpMyAdmin中显示了新列。如果我像SELECT new_column_name FROM table一样直接查询,列值也会出现。
如果我通过PHP或phpMyAdmin查询表,就会出现这个问题。
非常有趣的是,如果我运行SELECT *, new_column_name FROM table,new_column_name值就会被复制。
出现这种奇怪行为的原因是什么,以及如何恢复使用*显示所有列的默认行为
更新:我刷新了表缓存,重新启动了mysql服务
我需要从数据库中选择25列,条件是WHERE和ORDER BY。
我试图为此创建一个索引,但它仅限于16列。如何组织mysql语句和数据库,以便在PHP中以最快的方式从数据库中选择这25列?
示例表:
列: A、B、C、D、E、F、...
查询:"SELECT A,B,C,D,E,F,... FROM table WHERE X=5 ORDER BY Z“
更新1:
这是一个很大的表(很多行),这就是为什么我需要一个索引来加速这个过程。
我在中使用DataTables。我工作得很好,除非我试图输入一个额外的列来保存“编辑”链接。请参见表。
以下是显示列的server_processing.php代码片段:
/* Array of database columns which should be read and sent back to DataTables.
* Use a space where you want to insert a
* non-database field (for example a counter or static image)
*/
$aColumns
SQLSTATE42S22:找不到列: 1054“where子句”中的未知列“products.wishlist_id”(SQL: select * from products where products.wishlist_id =1 and products.wishlist_id is not null和products.deleted_at is null)
In my controller >>>
public function index() {
$wishlist_items = Wishlist::where('user_id', A