mysql - MySQL - ORDER BY 多个单词,然后按字母顺序?
问题描述
如何将查询的这一部分更改为首先按顺序排列多个单词,然后按字母顺序排列其余结果?
ORDER BY CASE WHEN name LIKE '%Professional%' THEN 0 ELSE 1 END asc, name asc
所以,它需要是:
'%Professional%' 1
'%Leader%' 2
'%Advocate%' 3
'%Clinician%' 4
'%Educator%' 5
'%Scholar%' 6
然后按字母顺序排列所有其他结果。
解决方案
您可以CASE
使用每个所需的单词来扩展您的表达式:
ORDER BY
CASE WHEN name LIKE '%Professional%' THEN 1
WHEN name LIKE '%Leader%' THEN 2
WHEN name LIKE '%Advocate%' THEN 3
WHEN name LIKE '%Clinician%' THEN 4
WHEN name LIKE '%Educator%' THEN 5
WHEN name LIKE '%Scholar%' THEN 6
ELSE 7
END,
name
推荐阅读
- vba - 使用 VBA 自动填充
- java - Azure 存储服务 REST API:创建租约
- html - 将 Bootstrap 4 按钮与 Angular 6 中页面的其他内容对齐
- javascript - 将已关闭的 google Doc 转换为 PDF 并附加到电子邮件中
- c# - 尝试在 Visual Studio 2017 中显示 xamarin.Forms.Maps 时出现“未处理的异常”
- javascript - Cordova iOS Webview 预加载声音?
- java - Jlibfprint 交叉编译
- c - 如何比较C中的字符串?这个错误“警告:指针和整数之间的比较”是什么意思?
- c# - 在 ASP.NET MVC 中全局应用 JSON 序列化程序设置
- git - Maven-scm-plugin:除非文件已更改,否则不要提交文件