mysql 按自定义的规则排序
有些时候取数据时的排序规则需要为自己的指定规则,如 1>3>2>0这种,所以需要在取数据时指定排序规则,具体方法如下:
SELECT `user` FROM user WHERE `user_status` in (0,1,2,3) ORDER BY FIELD(`user_status`,1,0,2,3);
这样就可以将取出来的数据按照 1>0>2>3 的顺序排序了。
在使用php框架 laravel 的时候,laravel 自带的超讯构造器并没有写好的排序指定规则的语句,但是可以通过这样写同样可以达到需求
User::orderByRaw("FIELD(user_status, 1,0,2,3)")->get();