having函数,case when与order by


having:用于筛选分组后的各组数据。
聚合函数,和group by一起使用(where不能和聚合函数使用)
group by放在order by前使用,放在之后报错
SELECT user_id from user_role r GROUP BY r.user_id HAVING COUNT(r.role_id)>=4 ORDER BY user_id DESC; 查询role_id大等于4的user_id

case when与order by,自己设置排序规则
SELECT * FROM `user` WHERE state=1
ORDER BY
(
CASE `name`
WHEN '总部管理员' THEN 1
WHEN '机构管理员' THEN 2
WHEN '主管' THEN 3
ELSE 4
END
) ASC

原文地址:https://www.cnblogs.com/vanoraxnc/p/8950609.html