一尘不染

在哪里与拥有

mysql

为什么需要在MySQL select 1 as "number"之后HAVING而不是WHEREMySQL中放置自己创建的列(例如)?

还有没有其他弊端WHERE 1(编写整个定义而不是列名)?


阅读 248

收藏
2020-05-17

共1个答案

一尘不染

为什么需要在HAVING之后放置自己创建的列(例如“ select 1 as number”),而不是在MySQL中放置WHERE?

WHERE被施加之前GROUP BYHAVING被后应用(并且可以在聚集体筛选)。

在一般情况下,你可以在没有这些条款的引用别名,但MySQL允许引用SELECT在级别别名GROUP BYORDER BYHAVING

还有什么缺点,而不是做“ WHERE 1”(写整个定义而不是列名)

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

2020-05-17