记录下最近遇到的一个mysql的自定义排序使用场景
在查询数据时想根据多个条件进行排序,其中有个是自定义的顺序,这时就需要用到FIELD函数。
可以参照一下方法
select * from 表名 where id in (519,531,521,536,520) order by 其他字段,FIELD(id,519,531,521,536,520)
在mybatis
中可以使用foreach
进行使用
select * from 表名
where
id in
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{index}
</foreach>
order by
其他字段,
field(id,
<foreach collection="list" index="index" item="item">
#{index}
</foreach>
)
参考链接:https://blog.youkuaiyun.com/weixin_39025362/article/details/105771285