SQL: select * from table where id IN (3,8,9,1,2,5,7,6);
这样的情况取出来后,其实,id还是按1,2,3,4,5,6,7,8,9,排序的,但如果我们真要按IN里面的顺序排序怎么办?SQL能不能完成?是否需要取回来后再foreach一下?其实mysql就有这个方法;
有3种方法可以解决:
sql1: SELECT * FROM on_goods WHERE id IN (3,8,9,1,2,5,7,6) order by field(id,3,8,9,1,2,5,7,6);
sql2: SELECT * FROM on_goods WHERE id IN(3,8,9,1,2,5,7,6) order by find_in_set(id,'3,8,9,1,2,5,7,6');
sql3: SELECT * FROM on_goods WHERE id IN(3,8,9,1,2,5,7,6) order by substring_index('3,8,9,1,2,5,7,6',id,1);
出来的顺序就是指定的顺序了
本文介绍在MySQL中如何按指定顺序获取数据,提供了三种方法:使用FIELD函数、FIND_IN_SET函数和SUBSTRING_INDEX函数,实现ID按特定顺序排序。
1010

被折叠的 条评论
为什么被折叠?



