可以使用 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 底部,其他按照时间排序的需求。

MySQL 排序实现状态查询:置顶、底部和时间排序

原文地址: https://www.cveoy.top/t/topic/n2ey 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录