所以,我有用PHPMyAdmin创建的这个MySQL表。我实际上是在用PHP(Codeigniter)和MySQL编写一个应用程序,使用户可以查看SQL表,添加值或删除行,添加过滤器,... 问题是,此特定的SQL表具有外键,因此该列已自动建立索引。当我执行“ SELECT *”查询时,我可以在我的网页上获取并打印整个表格。但是,当我尝试仅选择“主键”列时,没有显示索引列中有值的行。例如,如果第一行和第二行在索引列中都有值,则由于“ SELECT id”语句而显示的第一行将是表中的第三行。
我本来以为这是我的代码有问题,但是当尝试相同的SQL查询时,似乎在phpmyadmin中可重现此行为。
SELECT * FROM table;
给予
| id | col1 | col2 | indexed_col |
| 1 | value | value | value |
| 2 | value | value | value |
| 3 | value | value | null |
| 4 | value | value | null |
,依此类推。但这:
SELECT id FROM table;
给予
| id |
| 3 |
| 4 |
我不太了解这种行为。我可能已经错过了一些东西,但是如果有人能够解释为什么它会那样工作或找到解决方案,我会很高兴的。
更新
我的SQL表可能坏了,不知道为什么,我只是重新创建了一个。问题已解决