具体排序SQL命令

pyi*_*ius 2 mysql sql

说我有一个类似于的表:

ID    Name
1     Test
2     Contest
3     Fittest
4     Testament
Run Code Online (Sandbox Code Playgroud)

是否有一个MySQL查询,我可以使用它来排序,以允许它首先显示一个特定的单词?

例如,用户正在搜索单词"Test".我的声明类似于"SELECT*FROM tableWHERE NAME LIKE'%Test%'".我是否可以显示结果以显示START with Test首先开始后跟其他所有内容,而所有内容仍按字母顺序排列.

所以输出将是:

Test
Testament
Contested
Fittest
Run Code Online (Sandbox Code Playgroud)

谢谢.

CRe*_*lts 7

这会将以Test开头的单词放在顶部,并按字母顺序对这些单词加上列表的其余部分进行排序.

SELECT * FROM mytable 
ORDER BY CASE WHEN name LIKE 'test%' THEN 0 ELSE 1 END ASC, name ASC
Run Code Online (Sandbox Code Playgroud)