2

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

例如:

桌子

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

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

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

例如。

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

3 回答 3

4

您可以使用 :

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

它会为你工作。

于 2012-06-20T12:50:44.987 回答
2
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()

于 2012-06-20T12:53:16.567 回答
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
于 2012-06-20T12:51:01.560 回答