2017-12-31 191 views
-3
order by `order`=0,`order` 

何を意味しますか? それは珍しい、通常、我々はmysqlの注文方法は?

order by `order` asc 

を使用し、そうではありませんか?

答えて

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は先頭にあり、pr明らかにそれは二番目でした。

+0

回答ありがとうございます。非常に敏感です – XieWilliam

1

この値は2つの値で並べ替えられます。

最初の値(ソートする)は(=が通常の比較演算子である)orderが他00であれば1order = 0、です。

この値が2行で同じ場合は、orderフィールドでソートされます。