SELECT * FROM `table`不返回phpMyAdmin中的所有列

rqqzpn5f  于 2023-04-12  发布在  PHP
关注(0)|答案(2)|浏览(142)

当我执行SELECT * FROM table时,返回的行集不包含表中的所有列。它不包含最近添加的列。但是,phpMyAdmin中的structure选项卡显示了新列。如果我像SELECT new_column_name FROM table一样直接查询,列值也会显示。
如果我通过PHP或phpMyAdmin查询表,就会出现这个问题。
有趣的是,如果运行SELECT *, new_column_name FROM tablenew_column_name的值会重复。
出现这种奇怪行为的原因是什么?如何恢复使用*显示所有列的默认行为?
更新:我已经刷新了表缓存,并重新启动了mysql服务器,但没有任何变化。
更新:存储引擎是InnoDB
更新:在添加新列之前,我将列标题拖放到另一个位置以切换列的位置。但是在添加列之后,我点击了restore column order,所以它应该没有任何影响...
更新:在检查了通过命令行运行查询返回的内容后,我现在发现问题实际上只存在于phpMyAdmin中(命令行返回新列以及其他列)。仔细检查我在PHP中的操作,发现我显式地选择了特定列。**所以,现在问题只存在于phpMyAdmin中。**这可能是什么问题?

szqfcxe2

szqfcxe21#

有同样的问题,所以张贴这9年后的情况下,这是有帮助的人。快速解决的方法是只是复制表,然后删除旧的,并重新命名新的。

v1uwarro

v1uwarro2#

刚才出了点问题。
通过将存储引擎从InnoDB更改为MyISAM,然后再次返回到InnoDB来修复它。

相关问题