Tutorial de MySQL
El operador IN
en MySQL
es una herramienta que permite verificar si un valor determinado se encuentra dentro de un conjunto de valores especificados en una lista o subconsulta. Este operador es útil para simplificar las consultas y reducir la cantidad de código necesario para verificar múltiples valores. Con el operador IN
, puede evitar escribir múltiples cláusulas OR
o JOIN
y hacer que su código sea más legible y fácil de mantener.
La sintaxis básica del operador IN es la siguiente:
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1, value2, value3, ...);
Aquí, column_name
se refiere a la columna que desea verificar, table_name
es el nombre de la tabla que contiene la columna y value1, value2, value3, ...
son los valores que desea verificar.
También puede usar una subconsulta en lugar de una lista de valores:
SELECT column_name(s)
FROM table_name
WHERE column_name IN (SELECT column_name FROM table_name WHERE ...);
En este caso, la subconsulta se ejecuta primero para obtener una lista de valores que se compararán con la columna especificada en la cláusula WHERE
.
Utilizaremos la tabla de offices
de la base de datos de muestra para la demostración.

Seleccionar todas las oficinas en los países "USA" o "France"
SELECT officeCode, city, phone, country
FROM offices
WHERE country IN ('USA', 'France');
+------------+---------------+-----------------+---------+
| officeCode | city | phone | country |
+------------+---------------+-----------------+---------+
| 1 | San Francisco | +1 650 219 4782 | USA |
| 2 | Boston | +1 215 837 0825 | USA |
| 3 | NYC | +1 212 555 3000 | USA |
| 4 | Paris | +33 14 723 4404 | France |
+------------+---------------+-----------------+---------+
4 rows in set (0.06 sec)
Seleccionar todas las oficinas en los países "UK", "Spain" o "Australia"
SELECT officeCode, city, phone, country
FROM offices
WHERE country IN ('UK', 'Spain', 'Australia');
+------------+--------+------------------+-----------+
| officeCode | city | phone | country |
+------------+--------+------------------+-----------+
| 6 | Sydney | +61 2 9264 2451 | Australia |
| 7 | London | +44 20 7877 2041 | UK |
+------------+--------+------------------+-----------+
2 rows in set (0.00 sec)
Seleccionar todas las oficinas que no se encuentran en los países "USA", "France" o "Australia"
SELECT officeCode, city, phone, country
FROM offices
WHERE country NOT IN ('USA', 'France', 'Australia');
+------------+--------+------------------+---------+
| officeCode | city | phone | country |
+------------+--------+------------------+---------+
| 5 | Tokyo | +81 33 224 5000 | Japan |
| 7 | London | +44 20 7877 2041 | UK |
+------------+--------+------------------+---------+
2 rows in set (0.00 sec)