MySQL分段订购
作者:互联网
我有这样的数据集:
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
按布尔列排序会将数据分成两个部分,我想根据每个不同的参数排序:boolean = 1的那些按值排序,其余按名称排序,如下所示:
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
注意:我们需要在MySQL 4.1.11中使用它. = d
解决方法:
请注意,可以根据需要“激活”按顺序执行多个部分.
你可以查看这个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
标签:sql,mysql,sql-order-by,mysql4 来源: https://codeday.me/bug/20190723/1511733.html