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

mysql having 与 where

2015-07-31 20:58 585 查看
今天遇到的问题,以前都没思考过太多。

其实区别不是很大,但还是有的。

where 是mysql部分用于查询的过滤条件,也是我们最常用的。

having 是对查询结果进行过滤用的,也就是说只能用于 select后面出现的列名。

其它都一样,where语句怎么写,having语句就怎么写。

举个例子

SELECT count(*) FROM statis WHERE pc>100;


这个很简单,就是算pc列大于100的数据条数。如果这里把where 换成 having就会报错

20:52:04    SELECT count(*) as k FROM netkafem.agent_statis having pc>100   Error Code: 1054. Unknown column 'pc' in 'having clause'    0.001 sec


原因就是查询结果做为的表里没有一个叫pc的列。

再一个

SELECT uid,avg(pc)as apc FROM statis group by uid having apc>30;


这个看起来复杂一点,但还好就是找pc平均值大于30,按uid分组的数据。因为apc在查询的结果表里出现,所以这个地方可以用。

其实说到底,也真得是没多少区别。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: