3

私はこのようなデータセットを持っています:

boolean name    value
0       Text10  20
1       Text1   8
0       Text4   46
1       Text9   84
1       Text5   66
0       Text2   35
0       Text9   2
1       Text6   55

列ごとに並べ替えると、データが2つのセクションに分割されboolean、それぞれ異なるパラメーターに従って並べ替えます。1つはboolean = 1値順に並べ替えられ、残りは次のように並べ替えられますname

boolean name    value
1       Text1   8     # --> 1s are ordered by value
1       Text6   55
1       Text5   66
1       Text9   84
0       Text2   35    # --> 0s are ordered by name
0       Text4   46
0       Text9   2
0       Text10  20

注:MySQL4.1.11で機能するにはこれが必要です。= D

4

1 に答える 1

9

order by必要に応じて、その複数の部分を「アクティブ化」して実行できることに注意してください。
このsqlfiddleを確認できます

select * from yourtable
order by 
  boolean desc, 
  case when boolean = 0 then value else null end, -- ´else null´ is redundant
  case when boolean = 1 then name  else null end  -- but is here to clarify
于 2012-09-21T19:59:47.997 に答える