2011-04-05 120 views
0

在我的数据库中,我有一些记录,我感到发生了什么是一个NULL值排序返回:MySQL的顺序是(不需要)随机顺序

| col1 | col2 | 
| row1 | NULL | 
| row2 | NULL | 

SELECT ... ORDER BY col2 

即使所有的值相同(NULL ),我希望MySQL以一致的顺序返回结果,但它们显然是随机的。我运行这个查询一百次,每隔一段时间就会以不同的顺序返回结果。我找不到任何MySQL文档。有错误吗?或者这是一个记录的“功能”?

+0

在哪里/什么是 “极限” 规范,如果任何? – 2011-04-05 21:43:07

回答

7

这是预期的行为。只要“Order By”得到遵守,数据库引擎就可以按任意顺序自由返回行。如果你想要一致,那么试试:

select ... order by col2, some-unique-id 

where some-unique-id是表中唯一的一列。

+0

好的,这就是我的想法。我可以很容易地添加第二个子句,但我只是想知道使用一个子句的结果是一致的还是随机的。 – Andrew 2011-04-08 16:28:16

0

改变您的查询

选择....为了通过COL2,COL1

或任何其他列则需要