Mysql 按自定義順序排序

Mysql 按自定義順序排序

原文地址

1. 按指定狀態順序排序

例如有以下表:

id name status create_time
1 待審覈 2 2020-05-01 12:32:45
2 審覈通過 1 2020-05-03 12:32:45
3 審覈拒絕 3 2020-05-04 12:32:45

現在需要按審覈狀態排序,待審覈的需要放到前面,然後是審覈通過的,最後是審覈拒絕的。可以如下寫sql:

    SELECT
        *
    FROM
        table
    ORDER BY FIELD(STATUS, 2, 1, 3)

這樣就可以按指定狀態順序排序了。

2. 某一指定狀態置頂,其它數據按時間排序

還是對照上面的數據,待審覈狀態需要排在最前,其它狀態按時間倒序,這種情況可以這樣寫:

    SELECT
        *
    FROM
        table
    ORDER BY (CASE WHEN STATUS=2 THEN 1 ELSE 2 END), CREATE_TIME DESC

按照每條數據的STATUS字段重新設置編號,然後再進行排序。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章