SQL – Listar registros duplicados o repetidos

Cuando estamos trabajando con bases de datos con muchos registros, se puede producir muchos errores. Muchos de ellos es la duplicación de registros. Hay muchas personas añadiendo datos y no controlan que pueden añadir al mismo cliente 2 o 3 veces…

Cómo podemos controlar esto?

Una es sencilla: a la hora de insertar los registros controlar duplicaciones. Otra es la que os muestro que sería la mas ‘radical’. Listamos en la base de datos los registros duplicados. Imaginemos que tenemos una tabla ‘Inmueble’ con el campo ‘Dirección’. Listemos los inmuebles que tienen la dirección repetida mas una vez:

1
2
3
4
SELECT Inmueble, Direccion, COUNT(*)
FROM Inmuebles
GROUP BY Direccion
HAVING COUNT(*) > 1

De esta manera estamos listando todos los registros que tienen repetidos la dirección y la veces que lo está. De esta manera podemos controlar si una misma dirección está repetida, y por tanto podemos tener un inmueble repetido.

Es un ejemplo muy simple y sin mucho sentido, pero suficiente para que veáis cómo buscar registros repetidos en una tabla.

Artículos relacionados

Mysql Tips – Mayúsculas (Ucase) y reemplazar... Durante un proyecto puedes encontrarte con imprevistos. Imaginad que una vez almacenado los datos de nuestros clientes en la base de datos, nos dicen ...
MySql – Convertir a minúsculas menos el prim... En muchas ocasiones los usuarios, muy animados, empiezan a introducir datos en su CMS (wordpress, prestashop...) y cuando ya han añadido todos los reg...
Mysql – Eliminar registros de una tabla que ... Muchas veces, sobretodo en importaciones de bases de datos, nos puede interesar crear una nueva tabla a partir de dos tablas existentes, o eliminar da...
Mysql – UNION ALL y GROUP BY o ORDER BY Cuando en MySql se utiliza el UNION ALL, estamos uniendo los resultados de varias consultas. Para ello, debe cumplirse varias condiciones, entre la qu...

Deja un comentario

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

*