having跟where一样, 用来做条件的判断和数据的筛选过滤
在MySQL中,我们可以使用where进行条件的过滤, 也可以使用having.
示例
# 可以用where也可以用havingSELECT * FROM `t1` WHERE `age` > 18;SELECT * FROM `t1` HAVING `age` > 18;
演示
where和having的区别
- where中的条件是
表字段 - having中的条件是
结果集
示例
查询差价>200的商品信息
# 使用where
SELECT `goods_name`, market_price-shop_price as `chajia`
FROM `goods`
WHERE market_price-shop_price > 200;
# 使用having
SELECT `goods_name`, market_price-shop_price as `chajia`
FROM `goods`
HAVING chajia > 200;
group和having综合示例
查询该店每个栏目下面积压的总货款
SELECT `cate_id`, sum(goods_number*shop_price) as `jiya`
FROM `goods`
GROUP BY `cate_id`;
查询积压货款>1000的栏目
SELECT `cate_id`, sum(goods_number*shop_price) as `jiya`
FROM `goods`
GROUP BY `cate_id`
HAVING `jiya`>1000;
结论
- having通常和group by连用
- having的判断条件是结果集
