我的桌子上有三列
状态枚举('已完成','未完成','正在进行')
严重性枚举(“高”、“低”、“中等”)
创建日期时间
现在我正在按severity ASC created DESC status DESC订购。这是不对的。这就是我希望它被列出来的方式。
不完整-高
不完全-中等
不完整-低
进行中-高
进行中-中等
进行中-低
完成-高
完成-中等
完成-低

最佳答案

除了Andomar的解决方案之外,我还考虑为状态和严重性提供适当的表。不是枚举。
您可以从这些表的键中暗示排序顺序,但我可能会有一个“sort order”列供将来使用,然后您可以连接这些表并按SortOrder排序。
不需要在每个需要它的查询中重复这个案例
编辑:简化安多玛的想法。。。

order by
    case status
       when 'Incomplete' then 1
       when 'In Progress' then 2
       when 'Completed' then 3
    END,
    case severity
       when 'High' then 1
       when 'Moderate' then 2
       when 'Low' then 3
    END

关于php - mysql复杂命令由,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7215287/

10-13 23:15