具体排序SQL命令

时间:2011-06-05 15:01:10

标签: mysql sql

假设我有一张类似于:

的表格
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

感谢。

2 个答案:

答案 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