Buscar registros duplicados con MySQL

Vamos a ver como buscar registros duplicados usando MySQL.

En este ejemplo tenemos la siguiente tabla de personas:

id_personaNombreApellidosemail
1AlbertoMartínez Roviraoyagum@gmail.com
2JuanLópez Romanjlopez@gmail.com
3MaríaSanchez Sanchezmsanchez@gmail.com
4PedroAlmodovarpalmodovar@gmail.com
5AlbertMartínezoyagum@gmail.com

Y como podeis ver a simple vista, hay emails que se encuentran repetidos, aquí es fácil de ver porque son muy pocos registros.

Pero primero, no nos vamos a fiarnos solo de nuestra vista y segundo, ¿porqué vamos a hacer nosotros el trabajo si lo puede hacer una máquina?

Así que realizaremos la siguiente consulta para saber cuantos e-mails hay repetidos:

En la consulta le hemos dicho que nos devuelva el total de emails repetidos que hay con lo cual nos devolverá lo siguiente:

total_repetidosemail
2oyagum@gmail.com

Como veis lo que nos retorna la consulta es el número de total de repetidos que tenemos y el email en cuestión, así podemos saber cuantos hay repetidos y cual es el repetido.

Espero que os haya servido de ayuda.

Recordad! No olvidéis de comentar! Vuestro código y en el Blog! 😉

Comparte si te ha gustado:
Share on Facebook
Facebook
0Share on Google+
Google+
0Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin
Share on Tumblr
Tumblr
0Digg this
Digg
4 Comments

    Mario

    ¿como borrarías desde sql solo el duplicado dejando el primer registro en que aparece intacto?

    Oyagum

    Buenas,

    Primero de todo darte las gracias por leer mi blog, y segundo y respondiéndote, he creado un post para responder a tu pregunta:

    Puedes ver la entrada aquí: https://www.oyagum.com/articulos/eliminar-registros-duplicados-de-una-tabla/

    Jorge

    Hola Oyagum, ¿cómo sería la consulta si necesito evaluar dos columnas con valores repetidos?
    Saludos y gracias por compartir saberes!

    Oyagum

    Hola Jorge,

    Simplemente tendrías que agrupar por las dos columnas, la consulta quedaría tal que así:

    SELECT COUNT(*) total_repetidos, email FROM personas GROUP By nombre, email HAVING total_repetidos > 1

    Así cogeríamos los que tienen el mismo nombre y email.

    Espero que te haya ayudado.

    Y muchas gracias a ti por comentar 😉

Deja un comentario

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

*
*

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.