面试?where 和 having 的区别?

一代菜鸡斗胆投报阿里,果真迎来了圣枪洗礼!

Hr:说一下where 和 having 的区别吧。
菜鸡(我):我…有点不记得了,太久没用了,我只记得having 要 和 group by (分组)搭配。
Hr:…(沉默),,哦,那你还有什么问题想问吗?

男默女泪,菜不成声。
在这里插入图片描述

礼毕!请呐喊!请彷徨!


啊!!!啊!!!啊!!!



A man can be destroyed but not defeated!

———————————————————————————————————————————

Where 和 Having 的 一点区别

首先他们两个都是做条件筛选的,而筛选的字段有所不同!

此话怎讲?

首先 where 筛选的字段是 表中 对应的字段,这里以一个简单的 goods(货物)表 为例
在这里插入图片描述
where
在这里插入图片描述
可见,select 后面没有写 id ,where 也能根据 id 查。但是having 就不行了

having
在这里插入图片描述

在select 后加上 id 就可以了,因为having 是 根据select 后面跟的属性进行筛选的
在这里插入图片描述
目测where比较简便,但同样局限性大。

比如:所依据的字段不是表中带有的,avg(price) 等。

select id avg(price) where avg(price) > 10 就会报错

select id avg(price) having avg(price) > 10 就不会报错

当然这个例子不好,看不出这两个sql语句到底有什么实际意义,,
但是可以说明MySqlwherehaving的一点用法上的区别

最后说明一下,having不是天生用来和group by 搭配使用的,
而是大多数情况下他们两个一起用会比较容易解决问题。

where也可以和group by 一同使用,
只不过where 要放在 group by 的前面 而 having是放在后面。(单纯从语法上讲)

努力的道路依旧长,风景还有很多要赏.

That’s all,,.Thank you!!

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

少歌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值