按条款顺序获取记录

时间:2012-06-20 12:39:03

标签: mysql

如何按照mysql“where in”子句中的条件顺序从数据库中获取结果?

e.g:

id name
1 | riz
2 | irf
3 | far
4 | zab
5 | yas

我希望我的数据按条件的顺序放在where子句中??

select * from foo where id in (2,3,4,1,5);

例如

id  name
2 | irf
3 | far
4 | zab
1 | riz
5 | yas

3 个答案:

答案 0 :(得分:3)

您可以使用:

select * from foo where id IN(2,3,4,1,5) order by FIND_IN_SET(id, '2,3,4,1,5');

它适用于你。

答案 1 :(得分:1)

您可以将每个ID作为不同的排序案例提供。

SELECT *
FROM foo
WHERE
  id IN(2,3,4,1,5)
ORDER BY
  id = 2 DESC,
  id = 3 DESC,
  id = 4 DESC,
  id = 1 DESC,
  id = 5 DESC

答案 2 :(得分:1)

SELECT * 
FROM  foo 
where id in (2,3,4,1,5);
ORDER BY FIND_IN_SET( id, '2,3,4,1,5' )

以下是参考ORDER BY FIND_IN_SET()