mysql用field来定义排序规则

时间:2021-10-15 00:51:50

mysql的查询结果有时候会要求按照一定的规则排序,一般是按照id或者时间排序,这样的需求一般按照order by id desc 之类的就可以完成.但有时候的排序规则不是那么的有规律,比如说按照姓名排序,如要求的排序规则是:刘强东,马云,马化腾,李彦宏进行排序,那么 传统的order by 就不适用了,必须要用field进行排序了,格式如下

select *from user_tablewhere yn = 1order by field(表中要排序的字段名,'刘强东','马云','马化腾','李彦宏')



如果是多重排序规则,比如说先按照名字排序,然后再按照时间排序,则可以这样

select *
from user_table
where yn = 1
order by field(表中要排序的字段名,'刘强东','马云','马化腾','李彦宏'),age desc


这样就可以安全按照自己的意愿去排序了