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 中国語 Web サイトの他の関連記事を参照してください。