MySql - 首先按字符串值排序

时间:2013-10-15 10:06:52

标签: mysql

我的下表Foobar看起来像这样:

+----+-------------+
| ID | Description |
+----+-------------+
| 12 | aab         |
+----+-------------+
| 13 | fff         |
+----+-------------+
| 14 | fff         |
+----+-------------+
| 15 | xab         |
+----+-------------+

我想要的是按顺序打印出所有描述。但是我首先会喜欢价值观" fff"在顶部。换句话说,输出应如下:fff,fff,aab,xab。

这么简单:" SELECT foobar.description FROM foobar ORDER BY foobar.description ASC"不行。

3 个答案:

答案 0 :(得分:9)

在MySQL中可以使用

SELECT foobar.description 
FROM foobar 
ORDER BY foobar.description <> 'fff',
         foobar.description ASC

但通常你也可以使用case

SELECT foobar.description 
FROM foobar 
ORDER BY case when foobar.description = 'fff' then 1 else 2 end,
         foobar.description ASC

答案 1 :(得分:2)

select foobar.description from foobar
order by case when foobar.description = 'fff' then 1 else 2 end,
foobar.description asc 

答案 2 :(得分:0)

试试这个:

SELECT description
FROM foobar
ORDER BY description != 'fff', description

这是有效的,因为在mysql中,true为1,false为0。

我还从查询中删除了所有不必要的字符。