sql想查询一个数据放在第一个位置
背景:比如在查询后台账号的时候想将管理员账号始终放在第一个,其他账号按照创建时间倒序排序,
可以这样写sql:
SELECTid,create_time
FROM`user`
ORDER BY
CASEWHEN id = 1 THEN1 ELSE 2 END ASC,
create_time DESC
运行截图:
可以看到id为1始终在第一个位置,这是因为判断排序的时候第一个条件先生效,因此按照升序排序的话id为1 的数据被赋值为1,其他数据被赋值为2,其他数据就只能根据create_time字段进行排序;