mysql中IN子查询排序

这几天做一个查询,需要在一个指定的结果集中进行查询,例如:

select * from table_name where doc_id IN ('1dba', 'c20a', '907b')

其中IN子句中的doc_id列表是通过调用一个外部接口获得一组doc_id常量列表,然后在本地库中搜索符合这个列表的数据

记录。后来发现mysql返回的结果集的排序是按照入库顺序给出的,但是我希望能按照doc_id列表的先后顺序进行排序,

经过google得知可以改为:

select * from table_name where doc_id IN ('1dba', 'c20a', '907b') order by FIND_IN_SET('1dba', 'c20a', '907b')

果然达到效果。

猜你喜欢

转载自liuyouqian.iteye.com/blog/1413852