MySQL WHERE 子句中使用别名
在 MySQL 中,别名通常用于为派生列赋予临时名称。虽然方便引用,但在 WHERE 子句中使用它们可能会导致错误。
MySQL 限制在 WHERE 子句中引用列别名。这是因为在执行 WHERE 子句时,列值可能尚未确定。因此,在 WHERE 子句中指定别名将触发“未知列”错误。
解决方法
为了克服这个限制,有几种解决方法:
<code class="language-sql">HAVING avg_rating > 5</code>
<code class="language-sql">WHERE (sum(reviews.rev_rating)/count(reviews.rev_id)) > 5</code>
限制
请注意,并非所有表达式都允许在 WHERE 子句中使用。像 SUM 这样的聚合函数需要使用 HAVING 子句。
正如 MySQL 手册中所述:
“不允许在 WHERE 子句中引用列别名,因为在执行 WHERE 子句时,列值可能尚未确定。”
以上是我可以在 MySQL 的 WHERE 子句中使用列别名吗?的详细内容。更多信息请关注PHP中文网其他相关文章!