sql >> Databáze >  >> RDS >> SQLite

SQLite IN

Shrnutí :v tomto tutoriálu se naučíte používat SQLite IN operátor k určení, zda hodnota odpovídá nějaké hodnotě v seznamu hodnot nebo výsledku dílčího dotazu.

Úvod do SQLite IN operátor

SQLite IN operátor určuje, zda se hodnota shoduje s nějakou hodnotou v seznamu nebo poddotazu. Syntaxe IN operátor je následující:

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

expression může být jakýkoli platný výraz nebo sloupec tabulky.

Seznam hodnot je seznam pevných hodnot nebo sada výsledků jednoho sloupce vráceného poddotazem. Vrácený typ výrazu a hodnoty v seznamu musí být stejné.

IN operátor vrací true nebo false v závislosti na tom, zda výraz odpovídá nějaké hodnotě v seznamu hodnot či nikoli. Chcete-li negovat seznam hodnot, použijte NOT IN operátor.

SQLite IN příklady operátorů

Použijeme Tracks tabulky ze vzorové databáze pro ukázku.

Následující příkaz používá IN operátor pro dotaz na stopy, jejichž ID typu média je 1 nebo 2.

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

Zkuste to

Tento dotaz používá OR operátor namísto IN operátor vrátí stejnou sadu výsledků jako výše uvedený dotaz:

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

Zkuste to

Jak můžete vidět z dotazů, pomocí IN operátor je mnohem kratší.

Pokud máte dotaz, který používá mnoho OR operátory, můžete zvážit použití IN místo toho, aby byl dotaz čitelnější.

SQLite IN operátor s příkladem poddotazu

Následující dotaz vrátí seznam id alba s id interpreta 12:

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

Zkuste to

Chcete-li získat skladby, které patří k id interpreta 12, můžete kombinovat IN operátor s poddotazem takto:

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

Zkuste to

V tomto příkladu:

  • Nejprve dílčí dotaz vrátí seznam ID alb, která patří k ID interpreta 12.
  • Vnější dotaz pak vrátí všechny skladby, jejichž ID alba se shoduje se seznamem ID alb vráceným dílčím dotazem.

Příklady SQLite NENÍ V

Následující příkaz vrátí seznam skladeb, jejichž ID žánru není v seznamu (1,2,3).

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

Zkuste to

V tomto tutoriálu jste se naučili používat SQLite IN operátor pro přiřazení hodnoty k seznamu hodnot nebo dílčímu dotazu.


  1. Oprava „CHYBA 1136 (21S01):Počet sloupců neodpovídá počtu hodnot na řádku 1“ při vkládání dat do MariaDB

  2. Získejte aktuální hodnotu AUTO_INCREMENT pro libovolnou tabulku

  3. Nastavení NLS_LANG pro tenký ovladač JDBC?

  4. Halloweenský problém – část 2