1

我的表中有一个名为“priority”的字段,类型为 varchar(20),它可以有这四个值:show stopper、high、medium、low

现在,当我使用查询“按优先级从问题中选择优先级”对其进行排序时,结果是:1. 高 2. 低 3. 中 4. 显示塞子

但我需要以下顺序:1. 显示塞子 2. 高 3. 中 4. 低

请建议我在上面的书面查询中可以做什么来按此顺序获取结果?我知道如果我将 varchar 更改为 enum,问题就会得到解决。但是由于某些项目概念限制,我无法更改字段类型,所以请告诉我其他一些解决方案。提前致谢。

4

1 回答 1

4
             ...
             ORDER BY CASE priority WHEN 'show stopper' THEN 1
             WHEN 'high' THEN 2
             WHEN 'medium' THEN 3
             WHEN 'low' THEN 4
             END

或者

             ORDER BY FIELD(priority,'show stopper', 'high', 'medium', 'low');
于 2012-04-21T08:58:04.137 回答