MySQL如何实现按 IN 里面的顺序来排序

首先,介绍 IN 语句排序的办法。MySQL 中,要实现按 IN 括号中的值从前到后的排序,可以用 FIND_IN_SET 的方法。

SELECT id, name FROM members
WHERE id IN (11,1,2,3,14)
ORDER BY FIND_IN_SET(id,'11,1,2,3,14');

 

另外,科普一下 FIND_IN_SET 这个函数的查询功能。FIND_IN_SET 会在第二个参数中寻找第一个参数,并返回第一个参数所在的位置,不存在则返回 0。其中,第二个参数是以 “,” 分隔的字符串。

SELECT FIND_IN_SET('2','1,2');    -- 返回 2
SELECT FIND_IN_SET('6','1');    -- 返回 0


3