SQLite
 sql >> Datenbank >  >> RDS >> SQLite

SQLite EIN

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.