我正在学习MySQL语句ORDER BY
。我遇到了这个教程,他们展示了一个带有两个子句的例子。怎么可能?例如:
SELECT * FROM table_name ORDER BY
score DESC, date ASC;
如何通过两个条款订购?这对我来说没有意义。您的结果如何排序两次?
答案 0 :(得分:3)
此查询将执行以下操作:
ORDER score descending
IF there are two rows with same score
ORDER date ascending
简单地说,如果你有这张表
score date
1 11111
1 11113
2 11112
这会得到你的结果
score date
2 11112
1 11111
1 11113
答案 1 :(得分:2)
首先按分数排序,然后对于任何具有相同分数的行,按日期排序。
例如,这是按Score ASC, Date ASC
排序的:
Score Date
1 2012/3/2
12 2012/3/1
46 2012/3/1
213 2012/3/1
213 2012/3/2
234 2012/3/1
234 2012/3/2
435 2012/3/1
435 2012/3/2
435 2012/3/2
答案 2 :(得分:0)
SELECT...
FROM..
ORDER BY
score DESC, date ASC;
表示首先按SCORE
(降序)然后按date
(升序)订购
如果你有这样的记录:
A B
==========
10 100
10 200
20 300
40 500
ORDER BY A DESC, B ASC
A B
==========
40 500
20 300
10 100
10 200
正如您所看到的,有10
和B
的2条记录将按ascending
排序,这就是您获得100 then 200
而不是200 then 100
的原因。