为什么需要在 HAVING 之后放置自己创建的列(例如“选择 1 作为数字”)而不是 MysqL 中的 WHERE ?
WHERE
被施加之前GROUP BY
,HAVING
被后应用(并且可以在聚集体筛选)。
通常,您不能在这两个子句中引用别名,但MysqL
允许SELECT
在GROUP BY
、ORDER BY
和 中引用级别别名HAVING
。
是否有任何缺点而不是执行“WHERE 1”(编写整个定义而不是列名)
如果您的计算表达式不包含任何聚合,将其放入WHERE
子句中很可能会更有效。