sql >> Base de Datos >  >> RDS >> SQLite

SQLite EN

Resumen :en este tutorial, aprenderá a usar SQLite IN operador para determinar si un valor coincide con cualquier valor en una lista de valores o el resultado de una subconsulta.

Introducción a SQLite IN operador

El SQLite IN El operador determina si un valor coincide con cualquier valor en una lista o una subconsulta. La sintaxis del IN operador es el siguiente:

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

La expression puede ser cualquier expresión válida o una columna de una tabla.

Una lista de valores es una lista de valores fijos o un conjunto de resultados de una sola columna devuelta por una subconsulta. El tipo de expresión devuelto y los valores en la lista deben ser los mismos.

El IN El operador devuelve verdadero o falso dependiendo de si la expresión coincide con algún valor en una lista de valores o no. Para negar la lista de valores, usa el NOT IN operador.

SQLite IN ejemplos de operadores

Usaremos las Tracks tabla de la base de datos de muestra para la demostración.

La siguiente declaración usa el IN operador para consultar las pistas cuyo ID de tipo de medio es 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)

Pruébalo

Esta consulta utiliza el OR operador en lugar de IN operador para devolver el mismo conjunto de resultados que la consulta anterior:

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

Pruébalo

Como puede ver en las consultas, usando IN operador es mucho más corto.

Si tiene una consulta que utiliza muchos OR operadores, puede considerar usar el IN operador en su lugar para que la consulta sea más legible.

SQLite IN operador con un ejemplo de subconsulta

La siguiente consulta devuelve una lista de ID de álbum del ID de artista 12:

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

Pruébalo

Para obtener las pistas que pertenecen al id de artista 12, puede combinar IN operador con una subconsulta como sigue:

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

Pruébalo

En este ejemplo:

  • Primero, la subconsulta devuelve una lista de ID de álbumes que pertenecen al ID de artista 12.
  • Luego, la consulta externa devuelve todas las pistas cuya ID de álbum coincide con la lista de ID de álbum devuelta por la subconsulta.

SQLite NO EN ejemplos

La siguiente declaración devuelve una lista de pistas cuyo ID de género no está en una 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)

Pruébalo

En este tutorial, ha aprendido a usar SQLite IN operador para hacer coincidir un valor con una lista de valores o una subconsulta.