MySQL中where与having使用区别和方法

where在MySQL中的作用之大就不必说了。
在MySQL中经常使用select来查询数据,其中where在查询数据中占着关键作用,where在查询中一般是用来有条件的查询某个数据:
举个例子:
比如你要查询table中age>30的人,你应该怎么查询?

select * from table where age>30 ;

这样使用没有错吧,如果加上排序这些自然要使用到order by,当然这些都没有明显的区别,当having单独使用时效果也是一样的。

select * from table having age>30 ;

这样使用效果和where一样,区别在于在分组查询,在分组查询中,语法一般为:

select 分组函数 列 from 表名 [where 筛选条件] group by 分组列表[order by 子句]

如果我们需要对分组查询后的数据进行筛选,where就不适用了。看看吧
在这里插入图片描述
因为where是聚合前的筛选数据,可以理解为原来表中就有的数据,上面AVG(salary)是聚合之后的数据。
having 使用就为了筛选分组之后的数据。
在这里插入图片描述
结果就出来了。所以完整的一个查询语法是:

select 分组函数 列 fromwhere 筛选条件 group by 分组列表 having 筛选条件 order by 排序列表
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值