选择特定行,然后选择顺序?

时间:2019-03-29 12:48:19

标签: mysql sql

我有这个数据

names
============
All
Brian
Carey
Heather
Robert
Zach
_Immediate

这是为他们选择ORDER BY名称的时候。我想发表一个声明,使_Immediate出现在顶部,如

names
============
_Immediate
All
Brian
Carey
Heather
Robert
Zach

如果有关系/有帮助,_Immediate在列表中的绝对最低ID。我怎样才能做到这一点? UNION是唯一的方法吗?

3 个答案:

答案 0 :(得分:1)

您可以使用CASE表达式指定ORDER BY:

ORDER BY CASE
             WHEN names = '_Immediate' THEN 0
             ELSE 1
         END
,        names

答案 1 :(得分:1)

在MySQL中,我认为最简单的方法是:

order by (name = '_Immediate') desc, name

MySQL将布尔值视为整数,“ 1”为true,“ 0”为false。 desc就是“ 1”在“ 0”之前。

答案 2 :(得分:0)

您可以在下面尝试-

select * from tablename
order by case when names='_Immediate' then 0 else 1 end, names