Saltar al contenido principal
Documentos
FuncionesExpresionesKeywordsDeclaracionesCláusulas

MySQL IN Keyword

La palabra clave `IN` en MySQL se utiliza para especificar varios valores posibles para una columna en una cláusula `WHERE`. Simplifica las consultas complejas permitiéndote comparar el valor de una columna con una lista de valores potenciales.

Utilización

La palabra clave `IN` se utiliza cuando necesitas filtrar datos basándote en un conjunto de valores especificados. Es especialmente útil para reducir las condiciones "O" largas.

SELECT column1, column2, ...
FROM table_name
WHERE column_name IN (value1, value2, ...);

En esta sintaxis, `WHERE nombre_columna IN (valor1, valor2, ...)` filtra los resultados para incluir sólo las filas en las que el `nombre_columna` coincide con uno de los valores especificados. La palabra clave `IN` puede utilizarse con tipos de datos numéricos, de cadena y de fecha.

Ejemplos

1. Uso básico de IN

SELECT product_name
FROM products
WHERE category_id IN (1, 2, 3);

Esta consulta recupera los nombres de los productos que pertenecen a categorías con ID 1, 2 ó 3.

2. Utilizar IN con cadenas

SELECT employee_id, employee_name
FROM employees
WHERE department IN ('HR', 'Finance');

Aquí, la consulta obtiene los ID y nombres de los empleados que trabajan en los departamentos de RRHH o Finanzas.

3. IN con una subconsulta

SELECT order_id, order_date
FROM orders
WHERE customer_id IN (SELECT customer_id FROM customers WHERE country = 'USA');

Esta consulta utiliza `IN` con una subconsulta para seleccionar los pedidos realizados por clientes situados en EEUU.

Consejos y buenas prácticas

  • Limita el tamaño de la lista. Mantén corta la lista de valores para mantener el rendimiento de la consulta.
  • Utilízalo para una lógica clara. Sustituye las condiciones `OR` múltiples por `IN` para mayor claridad y simplicidad.
  • Combina con cuidado las subconsultas. Asegúrate de que las subconsultas están optimizadas, ya que pueden afectar al rendimiento.
  • Considera NO ENTRAR. Utiliza "NO EN" para excluir eficazmente determinados valores de tu conjunto de resultados.
  • Maneja los NULL con cuidado. Ten en cuenta que si la lista de valores incluye `NULL`, puede dar lugar a resultados inesperados porque `IN` no coincide con valores `NULL`.
  • Consideraciones sobre el rendimiento. En algunos casos, utilizar `JOIN` puede ofrecer un mejor rendimiento que `IN`. Evalúa el contexto de tu consulta para elegir el mejor enfoque.
  • EN vs EXISTE. Considera la posibilidad de utilizar `EXISTS` cuando se trate de subconsultas que comprueban la existencia de filas. `EXISTS` puede ser más eficaz en determinados casos en los que la existencia de una fila es más relevante que la coincidencia con valores concretos.

Perfeccionamiento de SQL para principiantes

Adquiere los conocimientos de SQL para interactuar con tus datos y consultarlos.
Empieza a aprender gratis