假设我有一张类似于:
的表格ID Name
1 Test
2 Contest
3 Fittest
4 Testament
我是否可以使用MySQL查询进行排序,以便首先显示特定的单词?
例如,用户正在搜索“测试”一词。我的声明类似于“SELECT * FROM table
WHERE NAME LIKE'%Test%'”。我是否可以显示结果以显示START with Test首先开始后跟其他所有内容,而所有内容仍按字母顺序排列。
因此输出将是:
Test
Testament
Contested
Fittest
感谢。
答案 0 :(得分:7)
这会将以Test开头的单词放在顶部,并按字母顺序对这些单词加上列表的其余部分进行排序。
SELECT * FROM mytable
ORDER BY CASE WHEN name LIKE 'test%' THEN 0 ELSE 1 END ASC, name ASC
答案 1 :(得分:3)
SELECT * FROM table
WHERE NAME LIKE '%Test%'
order by case when name like 'test%' then 0 else 1 end