A veces necesitamos buscar no un rango, sino una lista específica de valores.
Por ejemplo, queremos encontrar a los usuarios con los identificadores 1, 2 y 5.
Podríamos hacerlo así:
SELECT id, first_name, last_name
FROM users
WHERE id = 1 OR id = 2 OR id = 5;
| id | first_name | last_name |
|---|---|---|
| 1 | Lucienne | Feil |
| 2 | Ramiro | Wolf |
| 5 | Caleigh | Connelly |
🔵 Abrir en DB Fiddle
Funciona, pero si la lista crece, la consulta se vuelve interminable. Para eso existe un operador más limpio: IN.
Cómo funciona IN
Con IN, podemos escribir la misma consulta en una sola línea:
SELECT id, first_name, last_name
FROM users
WHERE id IN (1, 2, 5);
🔵 Abrir en DB Fiddle
✅ Más corta, más legible y mucho más fácil de mantener.
Excluir valores específicos
SELECT id, first_name, last_name
FROM users
WHERE id NOT IN (1, 2, 5);
🔵 Abrir en DB Fiddle
💬 Esta consulta muestra a todos los usuarios excepto los de ID 1, 2 y 5.
También con texto
IN también funciona con cadenas:
SELECT id, first_name, last_name
FROM users
WHERE first_name IN ('Lionel', 'Lucienne', 'Jennyfer');
| id | first_name | last_name |
|---|---|---|
| 1 | Lucienne | Feil |
| 4 | Jennyfer | Flatley |
| 96 | Lionel | Olson |
🔵 Abrir en DB Fiddle
Resumen
INsimplifica la búsqueda de valores específicos.- Dentro de los paréntesis se listan los valores, separados por comas.
- Usa
NOT INpara excluir coincidencias. - Funciona con números, texto y otros tipos de datos.
Para acceder completo a curso necesitas un plan básico
El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.