如果我使用 'Having' 作为 'Where' (即没有 group by 子句),你能告诉我哪个更快 'Where' 或 'Having (as where)'?我们必须更喜欢哪一个?
场景 - 我正在使用此条件使用纬度和经度在一定距离内查找位置。
如果条件引用了aggregate
函数,则将该条件放在HAVING
子句中。否则,使用该WHERE
子句。
您可以使用HAVING
,但建议您应该使用 with GROUP BY
。
SQL Standard
表示WHERE
在返回行之前HAVING
限制结果集,并在带来所有行之后限制结果集。所以WHERE
更快。
HAVING
这是和之间的区别WHERE
:
没有 GROUP BY
您通常不能替代使用它,但有关它的所有内容都包含在此链接中
这里是关于他们速度的话题:哪个 SQL 语句更快?(拥有与在哪里......)
HAVING 和 WHERE 的使用不可互换。它们涵盖不同的主题,如果没有 GROUP BY 句子,HAVING 似乎只等于 WHERE