sql >> Database >  >> RDS >> SQLite

SQLite IN

Samenvatting :in deze tutorial leer je hoe je de SQLite IN . gebruikt operator om te bepalen of een waarde overeenkomt met een waarde in een lijst met waarden of een resultaat van een subquery.

Inleiding tot de SQLite IN telefoniste

De SQLite IN operator bepaalt of een waarde overeenkomt met een waarde in een lijst of een subquery. De syntaxis van de IN operator is als volgt:

expression [NOT] IN (value_list|subquery);Code language: SQL (Structured Query Language) (sql)

De expression kan elke geldige uitdrukking of een kolom van een tabel zijn.

Een zoeklijst is een lijst met vaste waarden of een resultaatset van een enkele kolom die wordt geretourneerd door een subquery. Het geretourneerde type expressie en waarden in de lijst moeten hetzelfde zijn.

De IN operator retourneert waar of onwaar, afhankelijk van of de uitdrukking overeenkomt met een waarde in een lijst met waarden of niet. Om de lijst met waarden te negeren, gebruikt u de NOT IN telefoniste.

SQLite IN voorbeelden van operatoren

We gebruiken de Tracks tabel uit de voorbeelddatabase voor de demonstratie.

De volgende instructie gebruikt de IN operator om de tracks op te vragen waarvan het mediatype-ID 1 of 2 is.

SELECT
	TrackId,
	Name,
	Mediatypeid
FROM
	Tracks
WHERE
	MediaTypeId IN (1, 2)
ORDER BY
	Name ASC;Code language: SQL (Structured Query Language) (sql)

Probeer het

Deze zoekopdracht gebruikt de OR operator in plaats van de IN operator om dezelfde resultatenset als de bovenstaande query te retourneren:

SELECT
	TrackId,
	Name,
	MediaTypeId
FROM
	Tracks
WHERE
	MediaTypeId = 1 OR MediaTypeId = 2
ORDER BY
	Name ASC;Code language: SQL (Structured Query Language) (sql)

Probeer het

Zoals u kunt zien aan de hand van de zoekopdrachten, gebruikt u de IN operator is veel korter.

Als u een zoekopdracht heeft die veel OR . gebruikt operators, kunt u overwegen de IN . te gebruiken operator om de zoekopdracht leesbaarder te maken.

SQLite IN operator met een subqueryvoorbeeld

De volgende zoekopdracht retourneert een lijst met album-ID's van artiest-ID 12:

SELECT albumid
FROM albums
WHERE artistid = 12;Code language: SQL (Structured Query Language) (sql)

Probeer het

Om de nummers te krijgen die bij de artiest-ID 12 horen, kun je de IN . combineren operator met een subquery als volgt:

SELECT
	TrackId, 
	Name, 
	AlbumId
FROM
	Tracks
WHERE
	AlbumId IN (
		SELECT
			AlbumId
		FROM
			Albums
		WHERE
			ArtistId = 12
	);Code language: SQL (Structured Query Language) (sql)

Probeer het

In dit voorbeeld:

  • Eerst retourneert de subquery een lijst met album-ID's die bij artiest-ID 12 horen.
  • Vervolgens retourneert de buitenste query alle nummers waarvan de album-ID overeenkomt met de album-ID-lijst die door de subquery wordt geretourneerd.

SQLite NIET IN voorbeelden

De volgende instructie retourneert een lijst met nummers waarvan het genre-ID niet in een lijst van (1,2,3) staat.

SELECT
	trackid,
	name,
	genreid
FROM
	tracks
WHERE
	genreid NOT IN (1, 2,3);Code language: SQL (Structured Query Language) (sql)

Probeer het

In deze tutorial heb je geleerd hoe je de SQLite IN . gebruikt operator om een ​​waarde te matchen met een zoeklijst of een subquery.


  1. Genereer online PL/SQL-procedure om gegevens in Oracle-tabel te importeren

  2. Oracle.DataAccess.Client-afhankelijkheden

  3. Het uitvoeren van SQL-script via psql geeft syntaxisfouten die niet voorkomen in PgAdmin

  4. Alle tabellen in een MySQL-database in één opdracht afkappen?