为了账号安全,请及时绑定邮箱和手机立即绑定

何去何从呢

何去何从呢

蝴蝶刀刀 2019-06-29 17:50:21
何去何从呢为什么需要放置您自己创建的列(例如select 1 as "number")之后HAVING而不是WHERE在MySQL?难道没有什么坏处而不去做吗?WHERE 1(编写整个定义而不是列名)?
查看完整描述

3 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

为什么您需要将您自己创建的列(例如,“选择1作为数字”)放在具有而不是在MySQL中的位置之后?

WHERE应用之前GROUP BYHAVING之后应用(并且可以对聚合进行筛选)。

通常,您可以在这两个条款中引用别名,但是MySQL允许引用SELECT水平别名GROUP BYORDER BYHAVING.

除了“WHERE 1”(写整个定义而不是列名)之外,还有什么坏处吗?

如果计算的表达式不包含任何聚合,则将其放入WHERE子句最有可能更有效。


查看完整回答
反对 回复 2019-06-29
?
茅侃侃

TA贡献1842条经验 获得超21个赞

主要的区别是WHERE不能在分组项上使用(例如SUM(number))鉴于HAVING能,会,可以。

原因是WHERE已完成以前分组和HAVING已完成分组结束了。


查看完整回答
反对 回复 2019-06-29
  • 3 回答
  • 0 关注
  • 486 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信