首页 > 数据库 > SQL > mysql中where和having的区别

mysql中where和having的区别

下次还敢
发布: 2024-05-02 00:39:15
原创
681 人浏览过

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

mysql中where和having的区别

WHERE 与 HAVING 子句的区别

在 MySQL 中,WHERE 和 HAVING 子句都用于过滤数据集,但它们在作用范围和使用方式上存在主要差异。

WHERE 子句

  • 作用在 SELECT 语句的 FROM 子句中。
  • 用于过滤行,只能基于表中的列。
  • 在对行进行分组之前应用。

HAVING 子句

  • 作用在 SELECT 语句的 GROUP BY 子句之后。
  • 用于过滤组,可以基于组聚合函数的结果。
  • 在对行进行分组之后应用。

使用示例

WHERE 子句:

<code class="sql">SELECT * FROM customers WHERE age > 30;</code>
登录后复制

此查询从 customers 表中选择所有年龄大于 30 的客户。

HAVING 子句:

<code class="sql">SELECT city, COUNT(*) AS customer_count
FROM customers
GROUP BY city
HAVING customer_count > 100;</code>
登录后复制

此查询从 customers 表中选择所有客户数量超过 100 个的城市。

总结

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

以上是mysql中where和having的区别的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板