Rock笔记
~/rocknotes/articles/238.md article
// 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)')


回复// 0 replies

最新回复 ↓
// 暂无回复

回复功能沿用原详情页:前往原页面参与讨论 →