WHERE 子句过滤行,应用于分组前;HAVING 子句过滤组,应用于分组后且可使用组聚合函数的结果。

WHERE 与 HAVING 子句的区别
在 MySQL 中,WHERE 和 HAVING 子句都用于过滤数据集,但它们在作用范围和使用方式上存在主要差异。
WHERE 子句
作用在 SELECT 语句的 FROM 子句中。用于过滤行,只能基于表中的列。在对行进行分组之前应用。
HAVING 子句
作用在 SELECT 语句的 GROUP BY 子句之后。用于过滤组,可以基于组聚合函数的结果。在对行进行分组之后应用。
使用示例
WHERE 子句:
魔乐社区
天翼云和华为联合打造的AI开发者社区,支持AI模型评测训练、全流程开发应用
102 查看详情
SELECT * FROM customers WHERE age > 30;
此查询从 customers 表中选择所有年龄大于 30 的客户。
HAVING 子句:
SELECT city, COUNT(*) AS customer_countFROM customersGROUP BY cityHAVING customer_count > 100;
此查询从 customers 表中选择所有客户数量超过 100 个的城市。
总结
WHERE 子句用于过滤行,在分组之前应用。HAVING 子句用于过滤组,在分组之后应用,并且可以使用组聚合函数的结果。
以上就是mysql中where和having的区别的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/623083.html
微信扫一扫
支付宝扫一扫