Tiempo de lectura estimado: 4 minutos
Table of Contents
Cómo usar la sentencia DISTINCT en MySQL (ejemplos prácticos)
En MySQL, la sentencia SELECT DISTINCT es una herramienta muy útil cuando queremos obtener solo los valores únicos de una columna, evitando duplicados en los resultados.
En esta guía aprenderás a usar DISTINCT con ejemplos prácticos. Veremos cómo funciona en consultas simples, cómo combinarlo con varias columnas y qué precauciones debes tener en cuenta al usarlo en bases de datos grandes.
¿Qué es SELECT DISTINCT en MySQL?
La sentencia SELECT DISTINCT se utiliza para devolver valores únicos en el resultado de una consulta. Es decir, elimina los registros duplicados en una columna o en un conjunto de columnas.
Ejemplo básico:
SELECT DISTINCT nombre FROM contabilidad;
En este caso, el comando devuelve una lista de nombres únicos de la tabla contabilidad.
- SELECT → indica que queremos recuperar datos.
- DISTINCT → elimina los valores repetidos.
- FROM contabilidad → señala que los datos se obtienen de la tabla llamada
contabilidad.
Insertar datos de prueba en la tabla
Para poder probar DISTINCT, primero necesitamos tener algunos valores duplicados en la tabla.
Ejemplo:
INSERT INTO contabilidad (nombre, apellidos, profesion, telefono, direccion)
VALUES ('Alejandro', 'Sanchez', 'Arquitecto', '123456789', 'Calle Nueva');
Al añadir este registro, si ya existía otro alumno llamado "Alejandro", ahora tenemos un valor duplicado en la columna nombre.
Usar DISTINCT en una columna
Si solo queremos mostrar los nombres únicos de la tabla contabilidad:
SELECT DISTINCT nombre FROM contabilidad;
El resultado podría ser algo como:
+-----------+
| nombre |
+-----------+
| Alejandro |
| Julia |
| Gabriel |
| Valeria |
| Diego |
| Mariana |
| Jorge |
| Lucia |
+-----------+
De esta forma, aunque "Alejandro" aparezca varias veces en la tabla, solo se mostrará una vez en el resultado.
Usar DISTINCT en varias columnas
También podemos aplicar DISTINCT a más de una columna. En este caso, MySQL mostrará combinaciones únicas de esos valores.
Ejemplo:
SELECT DISTINCT nombre, apellidos FROM contabilidad;
Esto devolverá una lista de pares únicos de nombre + apellidos. Si hay dos registros con el mismo nombre pero distintos apellidos, ambos se mostrarán porque son combinaciones diferentes.
Ventajas y desventajas de usar DISTINCT
✅ Ventajas:
- Elimina duplicados en los resultados.
- Facilita la generación de reportes con datos limpios.
- Muy útil en columnas como correos, nombres de productos o ciudades.
⚠️ Desventajas:
- Puede consumir muchos recursos en tablas grandes, porque MySQL debe revisar todos los registros.
- No siempre es la mejor opción: en algunos casos, un
GROUP BYes más eficiente.

Ejemplo práctico completo
- Insertamos valores duplicados en la tabla
contabilidad. - Ejecutamos la consulta con DISTINCT para obtener resultados únicos.
INSERT INTO contabilidad (nombre, apellidos, profesion, telefono, direccion)
VALUES ('Lucia', 'Perez', 'Doctora', '987654321', 'Av. Central 12');
SELECT DISTINCT nombre FROM contabilidad;
SELECT DISTINCT nombre, apellidos FROM contabilidad;
Con estas sentencias, podemos ver cómo MySQL elimina duplicados en una o varias columnas.



Buenas prácticas al usar DISTINCT
- Usa
DISTINCTsolo cuando realmente necesites valores únicos. - En tablas con millones de registros, considera alternativas como
GROUP BY. - Si buscas valores únicos en combinación de columnas, indica todas en el
SELECT DISTINCT. - Para comprobar duplicados antes de eliminarlos, puedes usar:
SELECT nombre, COUNT(*)
FROM contabilidad
GROUP BY nombre
HAVING COUNT(*) > 1;
Preguntas frecuentes (FAQ)
¿Qué hace la sentencia SELECT DISTINCT en MySQL?
Elimina los duplicados y devuelve solo los valores únicos de una columna o de un conjunto de columnas.
¿DISTINCT funciona en varias columnas?
Sí. Devuelve combinaciones únicas de los valores de esas columnas.
¿Es mejor usar DISTINCT o GROUP BY?
Depende: DISTINCT es más simple para eliminar duplicados, pero GROUP BY puede ser más eficiente si necesitas hacer cálculos adicionales.
¿DISTINCT afecta al rendimiento?
Sí, en tablas grandes puede ser costoso porque debe recorrer todos los registros.
Te puede interesar:
Seguir leyendo:






