// article · mysql
MySQL 把指定数据行排在前面
如果只是一条数据行,可以这样:
SELECT * FROM user ORDER BY user_id<>7,score DESC;主要是“user_id<>7”,就会把用户id为7的排在前面。
Laravel里可以这样写:
orderByRaw("manager_user_id <> 7")如果是多条数据行:
SELECT * FROM user ORDER BY user_id NOT IN(7,8,9),score DESC;自定义排序:
order by field(value,str1,str2,str3,str4,,,,,,strn)
FIELD()函数是将参数1的字段对后续参数进行比较,并返回1、2、3等等,如果遇到null或者没有在结果集上存在的数据,则返回0,然后根据升序进行排序。
SELECT * FROM user ORDER BY field(id,5,1,9);laravel里
orderByRaw('FIELD(id,5,1,9)')