場景:
之前在項目中遇到這樣的問題,今天又遇到了,查了一些資料,記錄一下
我在查詢數(shù)據(jù)中,按照某個狀態(tài)排序的時候,我的狀態(tài)實際值是:0,1,2,3,4,5 而我項目需求是按 2,3,5,4,1 0排序;
問題出現(xiàn)了,無論是正序還是逆序 都不能滿足我當(dāng)前的需求,怎么辦?
解決方案:
方法1:直接sql 更改狀態(tài)值為想要的順序.
order by select status case when 2 then 5 case when 2 then 4? case when 5 then 3 case when 4 then 2 case 1 case else 0 order by status asc;
方法2:利用where in 方法?
具體sql如下 select * from table where status in (2,3,5,4,1 0) order by find_in_set(id,'2,3,5,4,1 0');