业务场景
在使用MySQL数据库时,常会用
IN ()
关键字来作为查询条件,但查询结果并不是按照IN ()
里面的顺序来排序的,
如何实现查询结果按照IN ()
里面的顺序来排序呢?
解法
使用 ORDER BY FIELD(字段名,a,b,c,d)
来实现排序,但是这种排序方法是效率很低的排序方式,建议谨慎使用!
示例
SELECT * FROM
agent_cbs.
sys_calmodeWHERE
calcodeIN ('AB0048','AB0049','AB0060','AB0050','AB0051','AB0052','AB0053','AB0054','AB0055','AB0056','AB0057','AC0058','AB0059','AC0031') AND
del_flag= '0' ORDER BY FIELD(calcode,'AB0048','AB0049','AB0060','AB0050','AB0051','AB0052','AB0053','AB0054','AB0055','AB0056','AB0057','AC0058','AB0059','AC0031')