我想让服务器按照我发送的顺序给我查询的结果。
所以如果我写:
SELECT * FROM table WHERE column in (9,1,8)我希望它按如下顺序给我结果: 9,1,8
发布于 2016-05-11 19:36:49
一种方法是使用left join
select t.*
from (select 9 as c, 1 as priority union all select 1, 2 union all select 8, 3
) vals left join
table t
on t.column = vals.c
order by vals.priority;注意:这是通用语法。子查询的特定语法可能因数据库而异。
另一种方法是在order by中使用case
select t.*
from table t
where t.column in (9, 1, 8)
order by (case column when 9 then 1 when 1 then 2 when 8 then 3 end);同样,这可以在一些数据库中简化,比如通过使用特殊函数。
https://stackoverflow.com/questions/37161347
复制相似问题