MySQL table returns 的简单查询导致奇怪的顺序

MySQL simple query of table returns results in strange order

我的 MySQL table 设置了一个自动递增的主键。每当我

SELECT * FROM [MYTABLE]

最后没有显示主键值最高的记录。是否有一个原因?我可以

SELECT * FROM [MYTABLE] ORDER BY [MYTABLE].ID ASC

最高的最后显示。抱歉,我无权分享数据库中的任何内容。也许有某种基础数据字段(如记录编号)未包含在用于排序的 table 中。这是 Windows 服务器上的 MySQL 5.7.19。 在我看来,按主键排序比它正在做的更有意义。 MySQL 版本 5.7.19.

你想要的不适用。 好吧,当然,无论数据如何存储,MySquile 都会固有地获取数据。 每次更改时对索引table进行排序,在table中列出主键,或者每次对调用进行排序。 select 订购

SELECT * FROM [MYTABLE] ORDER BY [MYTABLE].ID ASC

请记住,一旦开始插入和删除数据,您就永远无法保证自动递增列的顺序,因此除了您在查询中使用 ORDER BY 指定的顺序外,您不应依赖任何顺序.这是一项昂贵的操作,因为它需要完全重新创建索引,所以我不建议经常这样做。

Amin Zayeromali 是对的。这个问题的整个前提是错误的。 “奇怪的顺序”意味着会有一个 non-strange 顺序,并且期望 MySQL 凭直觉判断结果应该以哪种方式排序是荒谬的,尤其是在涉及连接的情况下。永远不应该问这个问题。我只是不够成熟,没有足够的经验来养成整理我所有 select 陈述的习惯。