MySQL 排序实现状态查询:置顶、底部和时间排序
可以使用 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/n2ey 著作权归作者所有。请勿转载和采集!