ホームページ >データベース >mysql チュートリアル >SQL WHERE 句でエイリアスを正しく参照するにはどうすればよいですか?
WHERE 句でのエイリアスの参照
SQL クエリを使用する場合、多くの場合、テーブルまたは式に一時的な名前を付けるためにエイリアスを使用する必要があります。 。これにより、コードの読みやすさと保守性が向上します。ただし、クエリのさまざまな部分でエイリアスを参照する場合は、制限事項に注意することが重要です。
問題
この例では、次のような試みが行われます。クエリの WHERE 句でエイリアス (_year) を参照します。ただし、これによりエラーが発生します:
ERROR: column "_year" does not exist
このエラーは、WHERE 句が SELECT 句の前に最初に実行されるために発生します。実行時には、データベースは SELECT 句のエイリアス定義にまだ遭遇していないため、それを認識できません。
解決策
この問題を回避するには、次のようにします。 WHERE 句自体でエイリアスが定義されるようにクエリを書き直すことができます。これにより、WHERE 句の実行時にエイリアスが使用可能になります。
SELECT SUBSTRING(pk, 6, 2)::INT AS _year FROM listing WHERE SUBSTRING(pk, 6, 2)::INT > 90
WHERE 句にエイリアス定義を配置することで、エラーが発生することなく、同じ句内でエイリアスを参照できます。
以上がSQL WHERE 句でエイリアスを正しく参照するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。