SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

SQLite IN


Resumo :neste tutorial, você aprenderá como usar o SQLite IN operador para determinar se um valor corresponde a qualquer valor em uma lista de valores ou um resultado de uma subconsulta.

Introdução ao SQLite IN operador


O SQLite IN O operador determina se um valor corresponde a qualquer valor em uma lista ou subconsulta. A sintaxe do IN operador é o seguinte:
expression [NOT] IN (value_list|subquery);Code language: SQL (Structured Query Language) (sql)

A expression pode ser qualquer expressão válida ou uma coluna de uma tabela.

Uma lista de valores é uma lista de valores fixos ou um conjunto de resultados de uma única coluna retornada por uma subconsulta. O tipo de expressão e os valores retornados na lista devem ser os mesmos.

O IN O operador retorna verdadeiro ou falso dependendo se a expressão corresponde a qualquer valor em uma lista de valores ou não. Para negar a lista de valores, você usa o NOT IN operador.

SQLite IN exemplos de operadores


Usaremos as Tracks tabela do banco de dados de exemplo para a demonstração.

A instrução a seguir usa o IN operador para consultar as faixas cujo id de tipo de mídia é 1 ou 2.
SELECT
	TrackId,
	Name,
	Mediatypeid
FROM
	Tracks
WHERE
	MediaTypeId IN (1, 2)
ORDER BY
	Name ASC;Code language: SQL (Structured Query Language) (sql)

Tente

Esta consulta usa o OR operador em vez do IN operador para retornar o mesmo conjunto de resultados da consulta acima:
SELECT
	TrackId,
	Name,
	MediaTypeId
FROM
	Tracks
WHERE
	MediaTypeId = 1 OR MediaTypeId = 2
ORDER BY
	Name ASC;Code language: SQL (Structured Query Language) (sql)

Tente

Como você pode ver nas consultas, usando o IN operador é muito mais curto.

Se você tiver uma consulta que usa muitos OR operadores, você pode considerar usar o IN em vez disso, para tornar a consulta mais legível.

SQLite IN operador com um exemplo de subconsulta


A consulta a seguir retorna uma lista de ID de álbum do ID de artista 12:
SELECT albumid
FROM albums
WHERE artistid = 12;Code language: SQL (Structured Query Language) (sql)

Tente

Para obter as faixas que pertencem ao ID do artista 12, você pode combinar o IN operador com uma subconsulta da seguinte forma:
SELECT
	TrackId, 
	Name, 
	AlbumId
FROM
	Tracks
WHERE
	AlbumId IN (
		SELECT
			AlbumId
		FROM
			Albums
		WHERE
			ArtistId = 12
	);Code language: SQL (Structured Query Language) (sql)

Tente

Neste exemplo:
  • Primeiro, a subconsulta retorna uma lista de IDs de álbuns que pertencem ao ID de artista 12.
  • Em seguida, a consulta externa retorna todas as faixas cujo ID do álbum corresponde à lista de IDs do álbum retornada pela subconsulta.

Exemplos de SQLite NOT IN


A instrução a seguir retorna uma lista de faixas cujo id de gênero não está em uma lista de (1,2,3).
SELECT
	trackid,
	name,
	genreid
FROM
	tracks
WHERE
	genreid NOT IN (1, 2,3);Code language: SQL (Structured Query Language) (sql)

Tente

Neste tutorial, você aprendeu como usar o SQLite IN operador para corresponder um valor com uma lista de valores ou uma subconsulta.