我的下表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"不行。
答案 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。
我还从查询中删除了所有不必要的字符。