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中文網其他相關文章!