Mostrar registros duplicados en una tabla MySQL

Mostrar registros duplicados. En algunos casos es necesario sacar un reporte con datos repetidos en nuestra tabla de MySQL. Si bien, cuando los registros son pocos podemos hacer la tarea de forma manual, pero se dificulta cuando son miles de registros.

Mostrar registros duplicados: Clave primaria

Desde un punto de vista si hay clave primaria no debería haber duplicados, pero podemos buscar los registros cuyos campos tengan el mismo valor. Por lo tanto, sean duplicados a la hora de sacar un determinado reporte de la tabla.

Mostrar registros duplicados en una tabla MySQL
Mostrar registros duplicados en una tabla MySQL

¿Cómo darle el trabajo a nuestro computador o servidor?

Esta tarea bien puede ser asignado a una maquina siempre y cuando le demos las instrucciones

Para este ejemplo, usaremos una tabla llamada «países» con 3 columnas (id, codigo, nombre). Sin embargo, nuestra tarea será mostrar contenido duplicado en las columnas.

Tabla MySQL: Países

CREATE TABLE `paises` (
`id` int(11) NOT NULL,
`codigo` varchar(4) DEFAULT NULL,
`nombre` varchar(150) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

INSERT INTO `paises` (`id`, `codigo`, `nombre`) VALUES
(1, 'UK', 'Reino Unido'),
(2, 'CO', 'Colombia'),
(3, 'CN', 'China'),
(4, 'FR', 'Francia'),
(5, 'DK', 'Dinamarca'),
(6, 'MX', 'Mexico'),
(7, 'CO', 'Colombia'),
(8, 'CN', 'China'),
(9, 'IN', 'India'),
(10, 'FR', 'Francia');

ALTER TABLE `paises`
  ADD PRIMARY KEY (`id`);

ALTER TABLE `paises`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=11;

A continuación, veremos 3 formas para poder encontrar campos o registros duplicados.

Mostrar registros duplicados: 3 formas de hacerlo

Aquí veremos tres formas para listar registros que posean datos repetidos.

a) Primera Forma

Usaremos la sentencia de MySQL COUNT() para lograr nuestro objetico, además de la sentencia GROUP BY

La consulta SQL es la siguiente:

SELECT codigo, nombre, COUNT(*) as Total
FROM paises 
GROUP BY nombre HAVING COUNT(*) > 1

En la consulta anterior nos devuelva el total de países repetidos que existe en la tabla países y el resultado es como en la siguiente imagen:

b) Segunda Forma

Aquí usaremos la sentencia IN dentro de la cláusula WHERE la aplicar nuestra consulta SQL
Consulta SQL

SELECT codigo, nombre
FROM paises
WHERE codigo
IN (SELECT codigo
FROM paises
GROUP BY codigo
HAVING count(codigo) >1)
ORDER BY codigo

Resultados luego de aplicar la consulta

Resultados con registros duplicados usando IN
Resultados con registros duplicados usando IN

c) Tercera Forma

Esta opción es muy sencilla y solo usa HAVING COUNT apoyado de la cláusula GROUP BY para mostrar registros repetidos.

SQL del ejemplo

SELECT codigo, nombre
FROM paises
GROUP BY nombre
HAVING COUNT( * ) >1

CONCLUSIÓN

En este artículo hemos aprendido a buscar si dentro de una determinada tabla hay campos repetidos, y si hay contar el número total de registros duplicados.

Haciendo consultas sencillas como GROUP BY y HAVING hemos aprendido a filtrar registros similares

Espero que esta pequeña explicación sea de su agrado.

Referencia

Duplicados

Me fascina la programación en diversos lenguajes y mas aún si son sistemas web o páginas web.

Entradas relacionadas

Exportar e importar vistas en MySQL

Exportar e importar vistas en MySQL ejemplo completo

Exportar e importar vistas en MySQL. El tema de exportación de vistas en MySQL suele ser un problema, pero en este articulo daremos 2 opciones prácticas para…

Eliminar registros de dos tablas en MySQL

Eliminar registros de dos tablas en MySQL

Eliminar registros de dos tablas en MySQL. SI deseamos borrar múltiples registros en varias tablas dependientes podemos hacerlo mediante los siguientes ejemplos propuestos. Planteamos el ejemplo de…

Mostrar registros no relacionados de dos tablas MySQL

Mostrar registros no relacionados de dos tablas MySQL

Mostrar registros no relacionados. Cuando deseamos normalizar una base de datos hay que corregir varios errores para lograr nuestro objetivo. Primeramente, relacionar las tablas, por ejemplo: Facturas…

Subir imagen al servidor usando PDO MySQL

Subir imagen al servidor usando PDO MySQL

Subir imagen al servidor usando PDO MySQL. En este artículo vamos a explicar paso a paso como almacenar una imagen n nuestro servidor usando el lenguaje PHP…

Llenar un select con MySQL PHP

Llenar un select con MySQL PHP: Ejemplos completos

Llenar un select con MySQL PHP: Ejemplos completos. En este artículo vamos a trabajar de manera dinámica, por ejemplo poblar una etiqueta select usando base de datos….

Búsqueda like con php mysql

Búsqueda like con php mysql

Búsqueda like con php mysql. MySQL proporciona un patrón estándar SQL patrones así como también una forma de coincidencia de patrones basado en expresiones regulares extendidas similares…

Esta entrada tiene un comentario

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *