当我执行SELECT * FROM table
时,返回的行集不包含表中的所有列。它不包含最近添加的列。但是,phpMyAdmin中的structure
选项卡显示了新列。如果我像SELECT new_column_name FROM table
一样直接查询,列值也会出现。
如果我通过PHP或phpMyAdmin查询表,则会出现此问题。
有趣的是,如果我运行SELECT *, new_column_name FROM table
,则new_column_name
值会重复。
这种奇怪行为可能是什么原因,以及如何使用*
恢复显示所有列的默认行为?
更新: 我刷新了表缓存,我重新启动了mysql服务器,但没有任何改变。
更新: 存储引擎是InnoDB
更新:
在添加新列之前,我将列标题拖放到另一个位置以切换列的位置。但是在添加列之后,我点击了restore column order
,所以它不应该有任何影响......
更新: 在检查通过命令行运行查询后返回的内容后,我现在看到问题实际上只有phpMyAdmin(命令行返回新列等)。仔细检查我在PHP中所做的事情表明我明确选择了特定的列。 所以,现在问题仍然存在于phpMyAdmin中。它可能有什么问题?
答案 0 :(得分:0)
刚才有这个问题。
通过将存储引擎从InnoDB更改为MyISAM,然后再次回到InnoDB来解决。