概要 :このチュートリアルでは、SQLite IN
の使用方法を学習します 値が値のリストまたはサブクエリの結果のいずれかの値と一致するかどうかを判断する演算子。
SQLite IN
の紹介 オペレーター
SQLite IN
演算子は、値がリストまたはサブクエリのいずれかの値と一致するかどうかを判別します。 IN
の構文 演算子は次のとおりです:
expression [NOT] IN (value_list|subquery);
Code language: SQL (Structured Query Language) (sql)
expression
任意の有効な式またはテーブルの列にすることができます。
値のリストは、固定値リスト、またはサブクエリによって返される単一の列の結果セットです。リストに返される式と値のタイプは同じである必要があります。
IN
演算子は、式が値のリスト内のいずれかの値と一致するかどうかに応じて、trueまたはfalseを返します。値のリストを無効にするには、NOT IN
を使用します オペレーター。
SQLite IN
オペレーターの例
Tracks
を使用します デモンストレーション用のサンプルデータベースのテーブル。
次のステートメントはIN
を使用しています メディアタイプIDが1または2のトラックをクエリする演算子。
SELECT
TrackId,
Name,
Mediatypeid
FROM
Tracks
WHERE
MediaTypeId IN (1, 2)
ORDER BY
Name ASC;
Code language: SQL (Structured Query Language) (sql)
試してみてください
このクエリはOR
を使用します IN
の代わりに演算子 上記のクエリと同じ結果セットを返す演算子:
SELECT
TrackId,
Name,
MediaTypeId
FROM
Tracks
WHERE
MediaTypeId = 1 OR MediaTypeId = 2
ORDER BY
Name ASC;
Code language: SQL (Structured Query Language) (sql)
試してみてください
クエリからわかるように、IN
を使用します 演算子ははるかに短いです。
多くのOR
を使用するクエリがある場合 演算子の場合、IN
の使用を検討できます 代わりに演算子を使用して、クエリを読みやすくします。
SQLite IN
サブクエリの例を持つ演算子
次のクエリは、アーティストID12のアルバムIDのリストを返します。
SELECT albumid
FROM albums
WHERE artistid = 12;
Code language: SQL (Structured Query Language) (sql)
試してみてください
アーティストID12に属するトラックを取得するには、IN
を組み合わせることができます。 次のようなサブクエリを持つ演算子:
SELECT
TrackId,
Name,
AlbumId
FROM
Tracks
WHERE
AlbumId IN (
SELECT
AlbumId
FROM
Albums
WHERE
ArtistId = 12
);
Code language: SQL (Structured Query Language) (sql)
試してみてください
この例では:
- 最初に、サブクエリはアーティストID12に属するアルバムIDのリストを返します。
- 次に、外部クエリは、アルバムIDがサブクエリによって返されたアルバムIDリストと一致するすべてのトラックを返します。
SQLiteは例に含まれていません
次のステートメントは、ジャンルIDが(1,2,3)のリストにないトラックのリストを返します。
SELECT
trackid,
name,
genreid
FROM
tracks
WHERE
genreid NOT IN (1, 2,3);
Code language: SQL (Structured Query Language) (sql)
試してみてください
このチュートリアルでは、SQLite IN
の使用方法を学習しました。 値を値のリストまたはサブクエリと照合する演算子。