ホームページ >データベース >mysql チュートリアル >エイリアスを使用すると SQL クエリが「Where 句の不明な列」で失敗するのはなぜですか?

エイリアスを使用すると SQL クエリが「Where 句の不明な列」で失敗するのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-17 15:51:10474ブラウズ

Why Does My SQL Query Fail with

SQL クエリにより、エイリアスが原因で「Where 句の不明な列」エラーが発生します

質問:

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。