簡體   English   中英

Mysql 按 ENUM 類型的兩列排序

[英]Mysql order by two columns having ENUM type

我有一個醫生表,其中有很多列,例如id, name, email,等,其中兩個是is_featuredis_top

這兩個列類型都是ENUM其值為“y”或“n”。

我想讓醫生先有is_features='y'然后那些醫生有is_top='y'最后是is_featured='n'is_top='n'

所以基本上我想要這樣的醫生的命令:

  1. is_featured='y'
  2. is_top='y'
  3. is_featured='n'
  4. 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM