首先,介绍 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