我有一个表,其中一列被排序。MySQL会以某种方式检查它是否已排序吗?如果我在对col1进行排序的地方进行这样的查询SELECT from tab WHERE col1>890 AND col1<74893798,它是否与SELECT from tab WHERE id>16 AND id<798176相同?我无法正确测试这一点,因为缺乏刷新查询缓存的管理员权限。为了清楚起见,我们对col1进行了排序,因为它是从另一个按列排序的表中插入的。
发布于 2016-07-29 04:44:55
不,它不是按where子句中使用的列排序的。id记录看起来是经过排序的,因为它可能是您的主键,并且已经决定了数据在表中的位置。如果要对数据进行排序,则需要添加ORDER BY column
发布于 2016-07-29 04:47:39
默认情况下(What drive the natural result order for an unordered MySQL request),MySQL不对结果进行排序。通常,关系DataBase管理系统(RDBMS)不保证任何特定的行顺序,除非您使用order BY子句指定order。
这样做的好处是,数据库可以在内部以它认为最优的任何格式对数据进行排序。
https://stackoverflow.com/questions/38646354
复制相似问题