order by `order`=0,`order`
它的意义是什么? 这很不寻常,通常我们使用
order by `order` asc
,不是吗?
答案 0 :(得分:3)
这将导致order
等于零的所有行首先排序,然后按照数字顺序排列order
非零的行。如果订单总是大于或等于零,则这与按顺序排序相同,但是,如果order
可以为负数,则会产生影响。
考虑以下数据:
Order | ID
======|===
0 | A
10 | B
5 | C
-5 | D
按order
排序会给您:
Order | ID
======|===
-5 | D
0 | A
5 | C
10 | B
按order=0,order
排序会给您:
Order | ID
======|===
0 | A
-5 | D
5 | C
10 | B
请注意,A的ID
行位于开头,之前是第二行。
答案 1 :(得分:1)
按两个值排序。
第一个值(排序方式)为order = 0
,如果1
为order
则为0
,否则为0
(=
是正常的比较运算符。)
如果两行的值相同,则它将按order
字段本身排序。