> Faqs > Cómo puedo encontrar los repetidos de un valor en una tabla de MySQL

Cómo puedo encontrar los repetidos de un valor en una tabla de MySQL

Tengo una tabla de usuarios en MySQL. Todos los usuarios tienen su email, que debería ser único. El caso es que no es así y tengo algunos usuarios con el email repetido. La pregunta es:

¿Cómo puedo encontrar todos las repeticiones de el valor "email" en la tabla de usuarios? Es decir, saber cuáles email aparecen repetidos más de una vez y el número de las repeticiones, con una sentencia SQL.

Respuestas

Tienes que realizar una sentencia SQL que combine la cuenta de los elementos, tus usuarios, agrupando por email. En MySQL puedes escribir esa consulta SQL así:

select count(*) as repeticiones, email_usuario from usuario group by email_usuario;

Esto te daría todas las repeticiones de todos los emails de tus usuarios en la base de datos, con el número de repetidos para cada email del usuario, incluyendo los emails que solo están 1 vez en tu tabla. Pero si quieres filtrar para que solamente te aparezcan las repeticiones de más de 1 email, que a priori es lo que te interesa, deberías usar having, con una SQL como esta:

select count(*) as repeticiones, email_usuario from usuario group by email_usuario having repeticiones > 1;

Si quieres, puedes obtener más información en este artículo: Agrupación de elementos con SQL

Alba
355 9 25 13
Muchas gracias con tus indicaciones pude encontrar los repetidos de la tabla. Ha sido de mucha utilidad para la administración de mi MySQL.