如何在MySQL数据库中对ENUM列进行排序?

Mis*_*hko 14 mysql sql sorting enums

color在MySQL表中有哪个类型的列ENUM('RED', 'YELLOW', 'MY_COLOR', 'BLACK'),以及另一个name类型的列VARCHAR(30).

我想按以下顺序获取所有表行:

  • YELLOW 行首先,排序依据 name
  • RED 行最后,排序依据 name
  • 在中间,所有其他行,按排序 name

这有可能在1个查询中进行这种排序吗?

OMG*_*ies 26

使用:

ORDER BY CASE color
           WHEN 'YELLOW' THEN 1
           WHEN 'RED' THEN 3
           ELSE 2
         END, name 
Run Code Online (Sandbox Code Playgroud)