您的位置:首页 > 数据库 > MySQL

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

2020-06-05 04:50 85 查看

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 分组函数 列 from 表 where 筛选条件 group by 分组列表 having 筛选条件 order by 排序列表
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: