Zusammenfassung :In diesem Tutorial erfahren Sie, wie Sie den SQLite IN
verwenden -Operator, um festzustellen, ob ein Wert mit einem beliebigen Wert in einer Werteliste oder einem Ergebnis einer Unterabfrage übereinstimmt.
Einführung in SQLite IN
Betreiber
Die SQLite IN
-Operator bestimmt, ob ein Wert mit einem beliebigen Wert in einer Liste oder einer Unterabfrage übereinstimmt. Die Syntax von IN
Operator ist wie folgt:
expression [NOT] IN (value_list|subquery);
Code language: SQL (Structured Query Language) (sql)
Der expression
kann ein beliebiger gültiger Ausdruck oder eine Spalte einer Tabelle sein.
Eine Werteliste ist eine feste Werteliste oder eine Ergebnismenge einer einzelnen Spalte, die von einer Unterabfrage zurückgegeben wird. Der zurückgegebene Ausdruckstyp und die Werte in der Liste müssen identisch sein.
Der IN
-Operator gibt true oder false zurück, je nachdem, ob der Ausdruck mit einem Wert in einer Werteliste übereinstimmt oder nicht. Um die Werteliste zu negieren, verwenden Sie den NOT IN
Betreiber.
SQLite IN
Operatorbeispiele
Wir werden die Tracks
verwenden Tabelle aus der Beispieldatenbank für die Demonstration.
Die folgende Anweisung verwendet den IN
-Operator, um die Tracks abzufragen, deren Medientyp-ID 1 oder 2 ist.
SELECT
TrackId,
Name,
Mediatypeid
FROM
Tracks
WHERE
MediaTypeId IN (1, 2)
ORDER BY
Name ASC;
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
Diese Abfrage verwendet das OR
Operator anstelle des IN
-Operator, um dieselbe Ergebnismenge wie die obige Abfrage zurückzugeben:
SELECT
TrackId,
Name,
MediaTypeId
FROM
Tracks
WHERE
MediaTypeId = 1 OR MediaTypeId = 2
ORDER BY
Name ASC;
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
Wie Sie anhand der Abfragen sehen können, verwenden Sie den IN
Operator ist viel kürzer.
Wenn Sie eine Abfrage haben, die viele OR
verwendet Operatoren, können Sie die Verwendung von IN
in Betracht ziehen Operator, um die Abfrage besser lesbar zu machen.
SQLite IN
Operator mit einem Beispiel für eine Unterabfrage
Die folgende Abfrage gibt eine Liste der Album-ID der Künstler-ID 12 zurück:
SELECT albumid
FROM albums
WHERE artistid = 12;
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
Um die Tracks zu erhalten, die zur Künstler-ID 12 gehören, können Sie den IN
kombinieren Operator mit einer Unterabfrage wie folgt:
SELECT
TrackId,
Name,
AlbumId
FROM
Tracks
WHERE
AlbumId IN (
SELECT
AlbumId
FROM
Albums
WHERE
ArtistId = 12
);
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
In diesem Beispiel:
- Zunächst gibt die Unterabfrage eine Liste mit Album-IDs zurück, die zur Künstler-ID 12 gehören.
- Dann gibt die äußere Abfrage alle Titel zurück, deren Album-ID mit der von der Unterabfrage zurückgegebenen Album-ID-Liste übereinstimmt.
SQLite NICHT IN Beispielen
Die folgende Anweisung gibt eine Liste von Titeln zurück, deren Genre-ID nicht in einer Liste von (1,2,3) enthalten ist.
SELECT
trackid,
name,
genreid
FROM
tracks
WHERE
genreid NOT IN (1, 2,3);
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
In diesem Tutorial haben Sie gelernt, wie Sie den SQLite IN
verwenden -Operator, um einen Wert mit einer Werteliste oder einer Unterabfrage abzugleichen.