首页 > 数据库:按照in内的字段排序

数据库:按照in内的字段排序

select name from t1 where name in (select name from t2 order by age)

这条语句查询出的name是无序的,想要让查询结果和in内的数据的排序方式相同(即按照age排序),如何实现?


有个函数find_in_set
select * form table where id in ('c', 'a' , 'b') order by find_in_set(id,'c,a,b');//按cab排序,id不用加引号


ORDER BY(
CASE id
WHEN 'a' THEN 1
WHEN 'b' THEN 2
ELSE 3 END
)

如果我没有理解错的话,你说的问题有一个很重要的前提:in中的字符是有序的。
那么只要加一个ORDER BY id 就可以了,至于是否需要加DESC,就看你的排序规则了。

  SELECT id
    FROM table
   WHERE id IN ('a','b','c')
ORDER BY id

问题已经解决:http://q.cnblogs.com/q/72768/#c_935404

【热门文章】
【热门文章】