伟明部落格

MySQL的IN查询保持顺序

--发布于 2023-03-08 20:25:52

我们知道,MySQL的IN查询的语句如下

-- 查询Id在集合3, 5, 2中的用户
SELECT * FROM user WHERE user_id IN(3,5,2);

这样虽然可以查到用户Id为那个集合中的值的用户。但有时候,我们也想查出来的用户记录也是按照指定的顺序来排序,也就是说,查询结果的排序也是按user_id为3, 5, 2这样的顺序排序,这样就要用到ORDER BY FIELD()语句

-- 查询Id在集合3, 5, 2中的用户,并且结果按user_id为3, 5, 2这样的顺序排序
SELECT * FROM user WHERE user_id IN(3, 5, 2) ORDER BY FIELD(user_id, 3, 5, 2);

参考

Maintaining order in MySQL "IN" query

--更新于 2023-03-09 10:51:41