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.