在我们Mysql使用in用法时,会发现我们根据某个字段in多个值时返回的结果会自动排序,比如下图,in('superadmin','demo','admin') 实际查询结果返回的顺序是admin,demo,superadmin

但如果我们真要按IN里面的顺序排序怎么办?SQL能不能完成?是否需要取回来后再foreach一下?
其实可以这样 order by field
SELECT
*
FROM
sys_user
WHERE
username IN ( 'superadmin', 'demo', 'admin' )
ORDER BY
field( username, 'superadmin', 'demo', 'admin' );
出来的顺序就是指定的顺序了

本文介绍了一种在SQL中实现自定义排序的方法,通过使用FIELD函数,可以在查询时根据指定顺序对结果进行排序,解决了IN语句中结果自动排序的问题。

被折叠的 条评论
为什么被折叠?



