gpt4 book ai didi

mysql - ORDER BY 具有特定值的优先级

转载 作者:可可西里 更新时间:2023-11-01 07:33:00 25 4
gpt4 key购买 nike

我有一个表,其中有一列名为 role,值如下:

Scientific staff
PostDocs
Supporting staff
PNUT
Visiting researchers
Secretary
Ph.D. students
Students
Other

我想以 Scientific staff 排在第一位的方式使用 ORDER BY。在我进行这样的查询时,Ph.D 字段。 students 将首先返回(好吧,因为目前数据库中没有行包含 Other 字段)。有没有一种方法可以仅使用 mysql 来实现这一点,还是我应该手动修改返回值?如果是这样,你能告诉我怎么做吗?

SELECT * FROM members ORDER BY role

最佳答案

你可以在没有额外的表和连接的情况下做到这一点,只需这样做:

SELECT * FROM members 
ORDER BY
CASE role
WHEN 'Scientific staff' THEN 1
WHEN 'PostDocs' THEN 2
WHEN 'Supporting staff' THEN 5
WHEN 'PNUT' THEN 6
WHEN 'Visiting researchers' THEN 4
WHEN 'Secretary' THEN 3
WHEN 'Ph.D. students' THEN 8
WHEN 'Students' THEN 7
WHEN 'Other' THEN 9
ELSE 10
END

关于mysql - ORDER BY 具有特定值的优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18112897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com