mysql having in_正确理解MySQL中的where和having的区别
以前在学校里学习过SQLserver数据库,发现学习的都是皮毛,今天以正确的姿态谈一下MySQL中where和having的区别。
误区:不要错误的认为having和group by 必须配合使用。
下面以一个例子来具体的讲解:
1. where和having都可以使用的场景
select goods_price,goods_name from sw_goods where goods_price > 100
select goods_price,goods_name from sw_goods having goods_price > 100
解释:上面的having可以用的前提是我已经筛选出了goods_price字段,在这种情况下和where的效果是等效的,但是如果我没有select goods_price 就会报错!!因为having是从前筛选的字段再筛选,而where是从数据表中的字段直接进行的筛选的。
2. 只可以用where,不可以用having的情况
select goods_name,goods_number from sw_goods where goods_price > 100
select goods_name,goods_number from sw_goods having goods_price > 100 //报错!!!因为前面并没有筛选出goods_price 字段
3. 只可以用having,不可以用where情况
查询每种goods_category_id商品的价格平均值,获取平均价格大于1000元的商品信息
select goods_category_id , avg(goods_price) as ag from sw_goods group by goods_category having ag > 1000
select goods_category_id , avg(goods_price) as ag from sw_goods where ag>1000 group by goods_category //报错!!因为from sw_goods 这张数据表里面没有ag这个字段
注意:where 后面要跟的是数据表里的字段,如果我把ag换成avg(goods_price)也是错误的!因为表里没有该字段。而having只是根据前面查询出来的是什么就可以后面接什么。
mysql having in_正确理解MySQL中的where和having的区别相关推荐
- python的上下文管理用哪个关键字_正确理解python中的关键字“with”与上下文管理器...
正确理解python中的关键字"with"与上下文管理器 来源:中文源码网 浏览: 次 日期:2018年9月2日 [下载文档: 正确理解python中的关键字&quo ...
- 正确理解WPF中的TemplatedParent
原文:正确理解WPF中的TemplatedParent http://www.cnblogs.com/mgen/archive/2011/08/31/2160581.html (注:Logical T ...
- matlab计算正负零序分量,5分钟教你正确理解电力系统中的正序负序零序.doc
5分钟教你正确理解电力系统中的正序负序零序 电力 三相不平衡 作图法 对称分量法 1:三相不平衡的的电压(或电流),可以分解为平衡的正序.负序和零序 2:零序为3相电压向量相加,除以3 3:正序将BC ...
- 正确理解scipy中的coo_matrix函数
正确理解scipy中的coo_matrix函数 1. 构造一个空矩阵 2. 使用ijv(triplet)格式构造一个矩阵 3. 用重复的索引构造矩阵 1. 构造一个空矩阵 这种用法比较简单,直接生成一 ...
- 深入理解mysql系列_深入理解MySQL系列之锁
按锁思想分类 悲观锁 优点:适合在写多读少的并发环境中使用,虽然无法维持非常高的性能,但是在乐观锁无法提更好的性能前提下,可以做到数据的安全性 缺点:加锁会增加系统开销,虽然能保证数据的安全,但数据处 ...
- linux重启mysql一直_linux正确重启MySQL的方法
由于是从源码包安装的mysql,所以系统中是没有红帽常用的servcie mysqld restart这个脚本 只好手工重启 有人建议killall mysql.这种野蛮的方法其实是不行的,强制终止的 ...
- mysql memory 索引_理解MySQL——索引与优化
索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点.考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录.如果没有索引,查询将对整个表进 ...
- 2.如何正确理解古典概率中的条件概率《zobol的考研概率论教程》
写本文主要是帮助粉丝理解考研中的古典概率-条件概率的具体定义. "B事件发生的条件下,A事件发生的概率"? "在A集合内有多少B的样本点"? "在B约 ...
- mysql where 与having_正确理解MySQL中的where和having的区别
以前在学校里学习过SQLserver数据库,发现学习的都是皮毛,今天以正确的姿态谈一下MySQL中where和having的区别. 误区:不要错误的认为having和group by 必须配合使用. ...
最新文章
- 你不应该忽略的五个机器学习项目一览
- opencv-python将视频切分成帧
- ios c语言编译环境搭建,iOS开发之runtime(一):runtime调试环境搭建
- axios如何在nodejs项目里封装_【面经】jq 中 ajax 和 axios 区别,瀑布流布局,添加删除事件...
- 算法 - 堆排序(大顶堆、小顶堆)
- Kubernetes-基本介绍/核心功能/相关术语(一)
- Python办公自动化|光速对比并提取两份Word/Excel中的不同元素
- luncence学习
- 暴风激活工具,劫持Chrome浏览器主页
- 锯齿波FMCW测距、测速的原理
- Vue + Spring Boot 项目实战(十三):使用 Shiro 实现用户信息加密与登录认证
- Volatility使用与实战
- Pandas合并excel文件错位现象的解决
- sqlserver-创建表
- linux shell ifs,shell - IFS分隔符
- 移动端rem适配ipad, ipad pro
- 关于麻将和牌算法的那些事
- Unparseable date: “2000-01-01“ 异常
- windows保护无法启动修复服务器,如何解决win10“Windows资源保护无法启动修复服务”错误 | MOS86...
- 跨源通信--postMessage用法
热门文章
- 关于不能远程连接Linux中Mysql数据库的问题
- 一次bug死磕经历之Hbase堆内存小导致regionserver频繁挂掉
- 完成这个例子,说出java中针对异常的处理机制。
- Keil C 中全局变量 extern 的使用
- [精华] 数据库的查询优化技术
- Missing artifact com.sun:tools:jar:1.5.0
- linux shell awk 单引号分割
- pycharm 远程调试
- shell公共函数:/etc/init.d/functions
- _splitpath,_makepath分析路径