概要:このチュートリアルでは、WHERE
句のPostgreSQL IN演算子を使用して、値がリスト内の任意の値と一致するかどうかを確認する方法を学
演算子構文のPostgreSQL
WHERE
句でIN
演算子を使用して、値が値のリスト内のいずれかの値と一致するかどうかを確認します。
IN
演算子の構文は次のとおりです:
Code language: SQL (Structured Query Language) (sql)
IN
演算子は、value
がリスト内の任意の値と一致する場合、つまりtrueを返します。, value1
, value2
, …
値のリストは、数値、文字列、または次のようなSELECT
ステートメントの結果などのリテラル値のリストにすることができます:
Code language: SQL (Structured Query Language) (sql)
かっこ内のクエリは、別のクエリ内にネストされたクエリであるサブクエリと呼ばれます。 サブクエリの詳細については、後続のチュートリアル
postgresqlの演算子の例
顧客id1と2のレンタル情報を知りたいとすると、WHERE
句でIN
演算子を次のように使:
次のクエリでは、in演算子の代わりにequal(=
)演算子とOR
演算子を使用します。 これは上記のクエリと同等です。
IN
演算子を使用するクエリは、equal(=
)演算子とOR
演算子を使用するクエリよりも短く、読みやすくなります。 さらに、PostgreSQLはOR
演算子のリストを使用する同じクエリよりもはるかに高速にIN
演算子を使用してクエリを実行します。
PostgreSQL NOT IN演算子
IN
演算子とNOT
演算子を組み合わせて、値がリスト内の値と一致しない行を選択することができます。
たとえば、次のステートメントでは、顧客idが1または2ではないすべてのレンタルが検出されます。
IN
演算子と同様に、not equal(<>
)演算子とAND
演算子を使用してNOT IN
演算子を記述できます。
このクエリは、NOT IN
演算子を使用する上記のクエリと同じ出力を返します。
このクエリは、NOT IN
演算子を使用する上記のクエリと同じ出力を返します。
サブクエリを使用したPostgreSQL
次のクエリは、rental
テーブルから顧客idのリストを返し、戻り日は次のとおりです2005-05-27
:
このクエリは値のリストを返すため、次のようにIN
演算子の入力として使用できます:
サブクエリの詳細については、サブクエリチュートリアルを参照してください。このチュートリアルでは、PostgreSQLのIN
演算子を使用して、値が値のリスト内の任意の値と一致するかどうかを確認する方法を学習しました。
- このチュートリアルは役に立ちましたか?