千家信息网

浅谈Mysql中where和having的区别

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,一、误区:不要错误的认为having和group by 必须配合使用.二、where和having用法解析:1、 where和having都可以使用的场景:select goods_price,goo
千家信息网最后更新 2026年10月31日浅谈Mysql中where和having的区别

一、误区:

不要错误的认为having和group by 必须配合使用.


二、where和having用法解析:


1、 where和having都可以使用的场景:


select goods_price,goods_name from goods where goods_price > 100


select goods_price,goods_name from goods having goods_price > 100


解释:上面的having可以用的前提是我已经筛选出了goods_price字段,在这种情况下和where的效果是等效的。

但是如果没有select goods_price 就会报错!!因为having是从前筛选的字段再筛选,而where是从数据表中的字段直接进行的筛选的。

因此可以看到where 是针对数据库文件的发挥作用,而having是针对结果集发挥作用。

其实第二个sql语句等价于如下语句更好理解:

select goods_price,goods_name from goods where 1 having goods_price > 100


2. 只可以用where,不可以用having的情况:


select goods_name,goods_number from goods where goods_price > 100


select goods_name,goods_number from goods having goods_price > 100


解释:第二个sql语句报错,这是因为前面并没有筛选goods_price 造成的,更能看出having是针对结果集发挥作用。


3. 只可以用having,不可以用where情况:

查询每种category_id商品的价格平均值,获取平均价格大于1000元的商品信息。


select category_id , avg(goods_price) as ag from goods group by category_id having ag > 1000


select category_id , avg(goods_price) as ag from goods where ag>1000 group by category_id


解释:第二个sql语句报错,这是因为from goods 这张数据表里面没有ag这个字段。


三、综述:


where 后面要跟的是数据表里的字段,where针对数据库文件的发挥作用。


而having只是根据前面查询出来的结果集再次进行查询,因此having是针对结果集发挥作用。


四、where和having的综合运用案例:


查询2门或2门以上不及格同学的平均成绩。

SELECT st_name,sum(score<60) as k,avg(score) FROM tbl_score group by st_name having k>=2;


作用 字段 数据 结果 语句 查询 情况 数据表 解释 价格 商品 数据库 文件 这是 信息 再次 前提 只是 同学 场景 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技海报 互联网科技公司简介 广州大一互联网络科技有限公司 互联网科技小贷 以房互联网科技 上海致骋互联网科技 联恩商钥互联网科技有限公司 科技大学互联网专业好不好 深圳前海聚择互联网科技有限公司 济南华为互联网科技产业总部基地 央行互联网金融科技公司 互联网软件和科技 移动互联网科技公司 卓翼科技产业互联网合作 雨阳互联网卡科技有限公司 张召忠谈中国互联网科技 西安有哪些互联网高科技企业 杭州融税互联网科技有限公司 承德科技产业互联网平台 安徽九吞吴互联网科技有限公司 中国互联网科技工作委员会毛军 互联网未来科技 蓝色互联网科技 济南和联互联网科技有限公司 青岛中康互联网医疗科技有限公司 来此购互联网科技有限公司 宝灵互联网科技有限公司 工业互联网山东科技大学 三亚科技创新互联网基地 互联网领先科技成果宣传视频
0