如果只是一条数据行,可以这样:
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)')
本帖已被设为精华帖!