ホームページ >データベース >mysql チュートリアル >PostgreSQL の IN と ANY: 主な違いは何ですか? それぞれをいつ使用する必要がありますか?
IN 構造と ANY 構造を理解する
PostgreSQL では、IN と ANY は両方とも、セットの比較を実行してセット内に値が存在するかどうかを判断する構造です。
論理的等価性
論理的には、IN は = ANY と同等です。ただし、それらの構文と機能は異なります。
文法のバリエーション
IN と ANY にはそれぞれ、次の 2 つの構文バリアントがあります:
機能の違い
いずれかの利点
ANY は、= を含むさまざまな演算子と組み合わせることができるため、柔軟性が高くなります。例:
<code class="language-sql">SELECT 'foo' LIKE ANY('{FOO,bar,%oo%}');</code>
規模とパフォーマンス
値が大きい場合、IN と ANY の両方にセットを使用するとパフォーマンスが向上する可能性があります。
反転して除外
指定された配列に値が含まれていない行を検索するには:
<code class="language-sql">SELECT * FROM tbl WHERE id <> ALL (ARRAY[1, 2]);</code>
上記のコード ブロック内の式はすべて同等であり、ID 値 1 と 2 を持つ行は除外されます。
NULL 値の包含
デフォルトでは、ID NULL の行は除外されます。それらを含めるには、次の式を使用します:
<code class="language-sql">SELECT * FROM tbl WHERE (id = ANY ('{1, 2}')) IS NOT TRUE;</code>
以上がPostgreSQL の IN と ANY: 主な違いは何ですか? それぞれをいつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。