myql 排序怎么实现状态查询一共5个状态 12345 实现状态1置顶状态34底部其他按照时间排序
可以使用CASE WHEN语句来实现此排序需求。以下是示例SQL语句:
SELECT * FROM table_name ORDER BY CASE WHEN status = 1 THEN 0 WHEN status = 3 OR status = 4 THEN 6 ELSE 1 END, time_column DESC;
解释:
首先,根据状态值使用CASE WHEN语句给每个状态分配一个排序值。状态1的排序值为0,状态3和4的排序值为6,其他状态的排序值为1。
然后,按照排序值进行排序,如果排序值相同,则按照时间倒序排列。这样就可以实现状态1置顶,状态3和4底部,其他按照时间排序的需求。
原文地址: https://www.cveoy.top/t/topic/e9aR 著作权归作者所有。请勿转载和采集!