Mysql where vs having
浏览:2074次 出处信息
在写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技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:Oracle-Mysql数据迁移测试
后一篇:MyISAM和InnoDB两种“引擎”的区别 >>
文章信息
- 作者:simaopig 来源: 小小子,simaopig
- 标签: having where
- 发布时间:2010-06-12 09:56:52
近3天十大热文
- [54] IOS安全–浅谈关于IOS加固的几种方法
- [52] android 开发入门
- [52] 如何拿下简短的域名
- [51] 图书馆的世界纪录
- [49] Go Reflect 性能
- [49] Oracle MTS模式下 进程地址与会话信
- [47] 【社会化设计】自我(self)部分――欢迎区
- [46] 读书笔记-壹百度:百度十年千倍的29条法则
- [37] 程序员技术练级攻略
- [29] 视觉调整-设计师 vs. 逻辑