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