複雑な WHERE 句を使用する場合、多くの場合、フィールドまたはフィールドのセットを値のリストと比較する必要があります。タプルを比較する場合、いくつかのオプションを使用できます。
ハードコードされた値を含む IN 句
1 つの方法は、IN 句内でハードコードされた値を使用することです。ただし、各レコードで文字列の連結と変換が必要になるため、大規模なテーブルの場合は非効率的になる可能性があります。
VALUE 句の使用 (標準 SQL)
標準のより効率的なオプションSQL-92 データベースでは、IN 演算子内で VALUES 句を使用します。これには、タプル リストを括弧で囲み、VALUES キーワードを追加することが含まれます。
SELECT * FROM mytable WHERE (group_id, group_type) IN ( VALUES ('1234-567', 2), ('4321-765', 3), ('1111-222', 5) );
データベース互換性
この構文はすべての SQL でサポートされているわけではないことに注意することが重要です。製品。 SQL Server 2022 の時点では、この機能は計画されていないとみなされます。ただし、PostgreSQL と SQLite はこの構文をサポートしています。
以上がSQL の「IN」句のタプルを効率的に比較するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。