[英]Mysql order by two columns having ENUM type
我有一個醫生表,其中有很多列,例如id, name, email,
等,其中兩個是is_featured
和is_top
。
這兩個列類型都是ENUM
其值為“y”或“n”。
我想讓醫生先有is_features='y'
然后那些醫生有is_top='y'
最后是is_featured='n'
和is_top='n'
所以基本上我想要這樣的醫生的命令:
is_featured='y'
is_top='y'
is_featured='n'
is_top='n'
任何人都可以幫助我如何實現這一目標?
我完全不知道如何對這些類型的 sql 查詢進行語法分析?
在 mysql 中有一個快捷方式:
SELECT ...
FROM ...
ORDER BY is_featured = 'y' DESC,
is_top = 'y' DESC,
is_featured = 'n' DESC,
is_top = 'n' DESC
否則,如果您想使其成為標准,也可以在其他 RDBMS 中運行,請使用CASE
SELECT ...
FROM ...
ORDER BY CASE WHEN is_featured = 'y' THEN 1 ELSE 0 END DESC,
CASE WHEN is_top='y' THEN 1 ELSE 0 END DESC,
CASE WHEN is_featured='n' THEN 1 ELSE 0 END DESC,
CASE WHEN is_top='n' THEN 1 ELSE 0 END DESC
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.