![Mysql数据查询in的时候如何排序,第1张 Mysql数据查询in的时候如何排序,第1张](/aiimages/Mysql%E6%95%B0%E6%8D%AE%E6%9F%A5%E8%AF%A2in%E7%9A%84%E6%97%B6%E5%80%99%E5%A6%82%E4%BD%95%E6%8E%92%E5%BA%8F.png)
前几天工作上遇到一个问题,在mysql数据查询的时候,使用的是in条件,而
结果需要根据in来进行排序,当时尝试了几次都没成功,后来在度娘的帮助下,找到了解决办法: select * from table_name where id in (6,2,1,10,5,7..) 查询的结果和in中的
顺序并不一致,也就是说在批量查询时,mysql的查询
并不是按照in中的值得顺序来查询的。那怎么才能保证和in查询中的顺序相同呢? 查询了资料发现有两种方式可以对in查询的结果进行排序。一种是order by find_in_set,另外一种是order by substring_index 1、select * from table_name where id in (6,2,1,10,5,7..) order by find_in_set(id,'6,2,1,10,5,7') 2、select * from table_name where id in (6,2,1,10,5,7..) order by substring_index('6,2,1,10,5,7',id,1)具体查询如下:
SELECT*
FROM tableNameWHERE id IN(179906362505 , 63323849672846 , 1842319481513 , 11931471166161 , 926221118 , 124571 , 55434 , 9297877807)
查询的结果和in中的顺序并不一致,也就是说在批量查询时,mysql的查询并不是按照in中的值得顺序来查询的。那怎么才能保证和in查询中的顺序相同呢?
查询了资料发现有两种方式可以对in查询的结果进行排序。一种是order by find_in_set,另外一种是order by substring_index
评论列表(0条)