2016-07-28 27 views
0

我有一个表,其中一列是排序的。 MySQL以某种方式检查它是否被排序?如果我在col1排序的地方做出这样的查询SELECT from tab WHERE col1>890 AND col1<74893798,它是否与例如相同SELECT from tab WHERE id>16 AND id<798176 由于缺乏管理员权限来刷新查询缓存,因此我无法正确地进行测试。 为了清楚起见,col1被排序,因为它是从另一个已经按列排序的表中插入的。对已排序数据的MySQL SELECT

+0

mysql没有订单 – Jens

回答

1

不,它不会按您在where子句中使用的列进行排序。 id记录看起来很有序,因为这可能是您的主键,并且已经决定了数据在表格中的位置。如果要将数据排序,您需要添加ORDER BY column

1

默认情况下,MySQL不对结果进行排序(What drive the natural result order for an unordered MySQL request)。通常,关系数据库管理系统(RDBMS)不保证任何特定的行顺序,除非您使用ORDER BY子句指定订单。

这样做的好处是数据库可以在内部按其认为最优的任何格式对数据进行排序。