6

Mysql where vs having -- MySQL -- IT技术博客大学习 -- 共学习 共进步!

 2 years ago
source link: https://blogread.cn/it/article/1770?f=hot1
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
您现在的位置首页 --> MySQL --> Mysql where vs having

Mysql where vs having

浏览:1934次  出处信息

    在写SQL语句的时候,用的最多的条件子句就是”where”,而”having”也是条件子句。

    二者相似,却也有不同。让我们简单了解一下。

    where和having的区别是where子句对一个表的所有记录进行操作,只搜索与指定条件相匹配的记录。

    而having子句只对经过操作的表记录进行检索,对结果集进行更进一步的筛选。

    通常,having子句和group by子句相连,而where子句和select,delete和update语句相连。

where vs having 处理内容

    首先,让我们看如下两个例子,结果还是很有意思的。

    这两个图可以说明如下事情:

在一些简单查询上,having与where子句很像having是在结果集里执行条件,如果结果集里没有要查询条件的字段存在则报错,而where则不然

where vs having 聚合函数

    当我们在sql语句里使用了聚合函数时(啥子是聚合函数?),having与where的表现也不同。

    根据上一条的记录,如果返回的结果集里没有having子句的查询字段存在,sql会报错

    根据上面的结果你可能会对having感到失望,别着急,经典的来了。

    这是因为where子句的条件执行是在聚合函数执行前就执行了,这时还没有cnt字段生成呢。而having子句的执行是在聚合函数后执行的(处理结果的嘛),所以可行。

    Goog good study, day day up!

QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK