mysql的查询用in,怎么按照in里面的查询顺序进行排名

如题所述

具体查询如下:
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
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-04-27
select * from test where id in(3,1,5) order by find_in_set(id,'3,1,5');
select * from test where id in(3,1,5) order by substring_index('3,1,2',id,1);
第2个回答  2017-09-16
in只是查询 离散字段
排名是 select clnum1,clnum2,这个字段显示
order by排序,
group by 分组。
第3个回答  2018-09-17
SELECT *FROM tableNameWHERE id IN(179906362505 , 63323849672846 , 1842319481513 , 11931471166161 , 926221118 , 124571 , 55434 , 9297877807)order by field(id,179906362505 , 63323849672846 , 1842319481513 , 11931471166161 , 926221118 , 124571 , 55434 , 9297877807)
第4个回答  2017-04-25
应该没有这个功能