MySQL在多重集合中的“ORDER BY”是不同的?

时间:2012-01-01 21:02:34

标签: mysql sql-order-by distinct

假设一个表中有一个存储整数的列。

-----------------------------
id    |  some_int  | some_other_value
-----------------------------
1        5           hello
2        9           how
3        987         are
4        5           you
5        9           thanks
6        1           for
7        5           answering. :-)

SELECT * FROM mytable ORDER BY some_int;是否与众不同?在每次查询后,它总是以相同的顺序返回行吗?

3 个答案:

答案 0 :(得分:2)

据我所知,如果order by子句中有重复项,则无法保证重复项的显示顺序。

如果这是一个问题,您可以修改订单,包括主键(我假设的ID)。

ORDER BY some_int, id

由于id是主键,因此也应将其编入索引。因此,性能差异将是最小的。

答案 1 :(得分:1)

执行此顺序并不总是必须为您提供相同的结果顺序。订单不同的情况并不常见,但假设订单总是相同而不是您订购的唯一值并非100%安全。为此,您还应在初始订单后包含主键。

SELECT * FROM mytable ORDER BY some_int, id

答案 2 :(得分:1)

使用此:

SELECT * FROM mytable ORDER BY some_int,id;

因此它将对'some_int'进行排序,然后使用'id''some_id'的重复项将使用'id'列设置为固定位置