phi*_*ext 1 mysql sql sql-order-by
我有一个表(mytable)和一个AUTO_INCREMENT列(id_mt).当我做一个简单的查询时
SELECT * FROM mytable;
Run Code Online (Sandbox Code Playgroud)
结果由AUTO_INCREMENT列按顺序排序
SELECT * FROM mytable order by id_mt;
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:当你没有使用'order by'时,如果你有一个AUTO_INCREMENT列,那么结果顺序的规则(如果有的话)是什么?
对于一些参考其他帖子的人来说要明确:我不使用
ALTER TABLE mytable ORDER BY sort_order ASC;
Run Code Online (Sandbox Code Playgroud)
很明显,当您使用ORDER BY查询时,此查询只会更改性能.我的问题更多的是'AUTO_INCREMENT是否会改变(强制?)简单SELECT的顺序?'
在SQL世界中,顺序不是一组数据的固有属性.因此,除非您使用ORDER BY子句查询数据,否则您的RDBMS无法保证您的数据将以特定顺序返回 - 或者甚至以一致的顺序返回.
ORDER BY.做任何事情都是为了让自己陷入不受欢迎的惊喜之中.