mysql中的where和having子句的区别

 我来答
育知同创教育
2016-05-09 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部

  where和having的区别是

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

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

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

xiangjuan314
2016-04-24 · TA获得超过3.3万个赞
知道大有可为答主
回答量:2.9万
采纳率:0%
帮助的人:2968万
展开全部
having 和where 都是用来筛选用的
having 是筛选组 而where是筛选记录

他们有各自的区别

1》当分组筛选的时候 用having

2》其它情况用where
-----------------------------------------------------
用having就一定要和group by连用,
用group by不一有having (它只是一个筛选条件用的)
-------------------------------------------------------
例子
表结构
部门编号 姓名 工资
1 aa 2000
2 bb 1200
1 cc 2100
2 dd 1800
1 ee 2100
3 ff 8000
2 gg 2200
3 hh 4500

查询有多个员工的工资不低于2000的部门编号
(就是说如果一个部门的员工大于2000的人数有两个或两个以上就查询出来)

select 部门编号,count(*) from 员工信息表
where 工资>=2000
group by 部门编号
having count(*)>1

where 针对每一条记录筛选
而 having 对同一个部门的分组
count(*)>1 计算多于两个的部门
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式