Palabra clave DISTINCT en MySQL
La palabra clave DISTINCT en MySQL se utiliza para eliminar registros duplicados de los resultados de una consulta SELECT. Garantiza que la consulta devuelva sólo valores únicos en las columnas especificadas.
Utilización
La palabra clave DISTINCT se emplea cuando quieres asegurarte de que los resultados de la consulta contienen sólo entradas únicas, eliminando cualquier fila duplicada. Se coloca directamente después de la palabra clave SELECT.
SELECT DISTINCT column1, column2, ...
FROM table_name;
En esta sintaxis, DISTINCT se aplica a la combinación de columna(s) especificada(s), garantizando que sólo se devuelvan combinaciones únicas de valores.
Ejemplos
1. Uso básico
SELECT DISTINCT country
FROM customers;
Esta consulta recupera una lista de países únicos de la tabla customers, eliminando los duplicados.
2. Columnas múltiples
SELECT DISTINCT first_name, last_name
FROM employees;
En este ejemplo, la palabra clave DISTINCT garantiza que la combinación de first_name y last_name sea única en los resultados, que aún pueden incluir filas con el mismo nombre pero apellidos diferentes, y viceversa.
3. Combinado con la cláusula WHERE
SELECT DISTINCT category
FROM products
WHERE price > 50;
Aquí, la palabra clave DISTINCT se utiliza con una cláusula WHERE para encontrar categorías de productos únicas en las que el precio sea superior a 50, lo que aumenta tanto la especificidad como la singularidad de los resultados.
4. Combinado con ORDER BY
SELECT DISTINCT department
FROM employees
ORDER BY department;
Este ejemplo demuestra el uso de DISTINCT con ORDER BY para recuperar nombres de departamentos únicos y mantener un orden específico en los resultados.
Consejos y buenas prácticas
- Utiliza DISTINTO con cuidado. Aunque
DISTINCTelimina los duplicados, puede afectar al rendimiento, especialmente en grandes conjuntos de datos. - Aplícalo a las columnas necesarias. Utiliza
DISTINCTsólo en las columnas en las que se requiera unicidad para evitar sobrecargas innecesarias. - Combínalo con
ORDER BY. Cuando sea necesario, combinaDISTINCTconORDER BYpara mantener un orden específico en los resultados. - Ten cuidado con los NULL.
DISTINCTtrata los valores deNULLcomo iguales, por lo que sólo se devolverá unNULLpor cada combinación de columnas, lo que puede afectar a los resultados si hay variosNULLs presentes en varias columnas.