mysql 中 where 、 group by 、having、order by 的执行顺序

mysql中这些关键字是按照如下顺序进行执行的:Where, Group By, Having, Order by。

首先where将最原始记录中不满足条件的记录删除(所以应该在where语句中尽量的将不符合条件的记录筛选掉,这样可以减少分组的次数)

然后通过Group By关键字对视图进行分组 

接着根据Having关键字后面指定的筛选条件,将分组后不满足条件的记录筛选掉

最后按照Order By语句对视图进行排序,这样最终的结果就产生了。

having子句可以让我们筛选成组后的各种数据,where子句在聚合前先筛选记录,也就是说作用在group by和having子句前。而having子句在聚合后对组记录进行筛选。

having可以用聚合函数,如having sum(money) > 1000

SELECT user_type,is_admin ,SUM(id) FROM saut_m_user

WHERE id > 100

GROUP BY user_type,is_admin

HAVING SUM(status) < 500

ORDER BY is_admin ASC

原文链接:https://blog.csdn.net/sxlzs_/article/details/79396979

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容