mysql - 在哪里与拥有

标签 mysql sql where-clause having-clause

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

除了WHERE 1(写整个定义而不是列名)还有什么缺点吗?

最佳答案

Why is it that you need to place columns you create yourself (for example "select 1 as number") after HAVING and not WHERE in MySQL?

WHEREGROUP BY 之前应用,HAVING 在之后应用(并且可以过滤聚合)。

一般来说,你不能在这两个子句中引用别名,但是 MySQL 允许在 GROUP BY 中引用 SELECT 级别的别名>ORDER BYHAVING

And are there any downsides instead of doing "WHERE 1" (writing the whole definition instead of a column name)

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

关于mysql - 在哪里与拥有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2905292/

相关文章:

mysql - 计算 MySQL 查询中的行数

Oracle PL/SQL 中的 SQL 与列表在哪里?

php - 尝试将旧的 mysql_query 转换为新的 PDO 方法,如何创建变量元素

mysql - 如何更改 MySQL 中的表(默认)排序规则而不转换列

mysql - 单个 SQL 语句中的多个聚合

mysql - SQL:使用where来搜索带有参数的当前查询

c# - Where condition equal true 和 Nullable 对象必须有一个值

php - Foreach 循环不会将 Quickbooks 中的所有记录插入 MySQL 数据库。

SQL:与其他方式相比,在单个 `group_id` 之前查询 `id` 是否更好?

sql - 错误 : could not access file "$libdir/postgis-2.0" postgresapp