Buscar registros duplicados con MySQL

A veces nos encontramos con el caso de que por error de programación duplicamos sin querer registros en nuestra base de datos.

Vamos a utilizar esta consulta SQL para poder buscar los duplicados de una tabla utilizando un COUNT para hacer el conteo de registros duplicados.

SELECT id_registro, COUNT(*) Total
FROM registros
GROUP BY id_registro
HAVING COUNT(*) > 1

Para hacerlo un poco más complejo, vamos a buscar los valores duplicados dentro de una tabla cuyo problema sería el siguiente:

El problema ha sido con una talla de camiseta en el que se nos ha añadido 3 veces. Al crear el registro se ha creado de forma incorrecta vía PHP.

Desde otra tabla se recuperó 3 valores distintos al hacer una consulta con un where «%L%» y esto fue lo que nos creo los registros duplicados.

Entonces vamos a hacer lo mismo pero en la tabla donde se han añadido los registros viendo cuales han sido los que se han duplicado:

SELECT id_registro, COUNT(*) Total
FROM camisetas
WHERE talla LIKE ‘%L%’
GROUP BY id_registro
HAVING COUNT(*) > 1

Esto nos devolvería que personas han seleccionado la talla de camiseta L pero además nos devolverá a los que se les ha añadido la XL y la XXL duplicando así sus valores.

Este fue un problema real y por lo tanto ha servido de mucha ayuda para poder solventar de forma manual este problema.

id_registro Total
00001 3
00002 2