假设一个表中有一个存储整数的列。
-----------------------------
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;
是否与众不同?在每次查询后,它总是以相同的顺序返回行吗?
答案 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'列设置为固定位置