SQLite
 sql >> Database >  >> RDS >> SQLite

SQLite IN

Riepilogo :in questo tutorial imparerai come usare SQLite IN per determinare se un valore corrisponde a qualsiasi valore in un elenco di valori o al risultato di una sottoquery.

Introduzione a SQLite IN operatore

SQLite IN determina se un valore corrisponde a qualsiasi valore in un elenco o in una sottoquery. La sintassi di IN operatore è il seguente:

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

L'expression può essere qualsiasi espressione valida o una colonna di una tabella.

Un elenco di valori è un elenco di valori fissi o un set di risultati di una singola colonna restituita da una sottoquery. Il tipo di espressione e i valori restituiti nell'elenco devono essere gli stessi.

Il IN l'operatore restituisce true o false a seconda che l'espressione corrisponda o meno a qualsiasi valore in un elenco di valori. Per negare l'elenco dei valori, usi NOT IN operatore.

SQLite IN esempi di operatori

Useremo le Tracks tabella dal database di esempio per la dimostrazione.

La seguente istruzione utilizza il IN operatore per interrogare le tracce il cui ID del tipo di supporto è 1 o 2.

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

Provalo

Questa query utilizza OR operatore invece di IN per restituire lo stesso set di risultati della query precedente:

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

Provalo

Come puoi vedere dalle query, utilizzando il IN operatore è molto più breve.

Se hai una query che utilizza molti OR operatori, puoi considerare l'utilizzo di IN operatore invece per rendere la query più leggibile.

SQLite IN operatore con un esempio di sottoquery

La query seguente restituisce un elenco di ID album dell'ID artista 12:

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

Provalo

Per ottenere i brani che appartengono all'ID artista 12, puoi combinare il IN operatore con una sottoquery come segue:

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

Provalo

In questo esempio:

  • In primo luogo, la sottoquery restituisce un elenco di ID album che appartengono all'ID artista 12.
  • Quindi, la query esterna restituisce tutte le tracce il cui ID album corrisponde all'elenco di ID album restituito dalla sottoquery.

SQLite NON NEGLI esempi

La seguente istruzione restituisce un elenco di brani il cui ID di genere non è in un elenco di (1,2,3).

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

Provalo

In questo tutorial, hai imparato come usare SQLite IN operatore per abbinare un valore a un elenco di valori o a una sottoquery.