示例
示例
SELECT id, title, priority
FROM tickets
ORDER BY CASE priority
WHEN 'urgent' THEN 0
WHEN 'high' THEN 1
WHEN 'normal' THEN 2
ELSE 3
END,
created_at DESC;| 原理 | 把枚举映射为可比较的序号 |
|---|---|
| 次级排序 | 同优先级内再用时间或主键保证确定性 |
| 替代 | 维度表存排序字段,或使用枚举类型自带排序规则 |
排序键含 CASE 表达式时通常无法使用 priority 列索引,高频场景可冗余一个 sort_no 列。