我有一个带有AUTO_INCREMENT列(id_mt)的表(mytable)。当我做一个简单的查询,如
SELECT * FROM mytable;
结果由AUTO_INCREMENT列按
排序SELECT * FROM mytable order by id_mt;
所以我的问题是:当你没有使用'order by'时,如果你有一个AUTO_INCREMENT列,那么结果顺序的规则(如果有的话)是什么?
要明确某些参考其他帖子的人:我不使用
ALTER TABLE mytable ORDER BY sort_order ASC;
很明显,当您使用ORDER BY查询时,此查询只会更改性能。 我的问题更多的是'AUTO_INCREMENT是否会改变(强制?)简单SELECT的顺序?'
答案 0 :(得分:6)
在SQL世界中,顺序不是一组数据的固有属性。因此,除非您使用ORDER BY子句查询数据,否则您的RDBMS无法保证您的数据将以特定顺序返回 - 或者甚至以一致的顺序返回 - 除非您使用ORDER BY子句查询数据。
ORDER BY
指定所需的订单。做其他事情就是为自己设置不受欢迎的惊喜。