这几天做一个查询,需要在一个指定的结果集中进行查询,例如:
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')
果然达到效果。
赞叹sql博大精深需要仔细研习。。。。。。