質問:
SELECT ステートメントでエイリアスを使用するクエリではエラーが発生し、WHERE ステートメントで不明なエイリアス列が要求されます。たとえば、次のクエリはこのエラーをトリガーします:
<code class="language-sql">SELECT u_name AS user_name FROM users WHERE user_name = "john";</code>
説明:
SQL の実行順序は右から左です。この例では、WHERE 句が SELECT 句の前に実行されます。したがって、WHERE 句が解析されるとき、エイリアス user_name
はまだ定義されていません。
解決策:
この問題を解決するには、WHERE 句で元の列名を使用できます。
<code class="language-sql">SELECT u_name AS user_name FROM users WHERE u_name = "john";</code>
または、WHERE 句でエイリアス列名を括弧で囲みます:
<code class="language-sql">SELECT u_name AS user_name FROM users WHERE (user_name = "john");</code>
以上がエイリアスを使用すると SQL クエリが「Where 句の不明な列」で失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。