如何排序mysql结果,但首先显示特定的结果

时间:2013-10-08 08:20:05

标签: php mysql

我有这样的表

id    name
1     John
2     Mike
3     Zed
4     Teacher
5     Aaron
...........

如何使mysql查询按名称以ASC顺序获取行,但将“Teacher”放在顶部或以“Teacher”开头的内容?

3 个答案:

答案 0 :(得分:11)

select * from your_table
order by case when name = 'Teacher' then 1 else 2 end,
         name 

对于MySQL,以下是有效的,因为它返回0的{​​{1}}和false的{​​{1}}

1

答案 1 :(得分:0)

使用FIELD功能

SELECT * FROM table ORDER BY FIELD(`name`,'Teacher') ASC

答案 2 :(得分:0)

select * from table order by case when name like "Teacher%" then 1 else 2 end,name 

从教师开始的名称将按字母顺序排序,然后是其他名称。 实施例

Teacher
Teacher Aaron
Teacher Zed
Aaron
Zed