"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo eliminar los registros duplicados en MySQL mientras mantiene lo último?

¿Cómo eliminar los registros duplicados en MySQL mientras mantiene lo último?

Publicado el 2025-03-22
Navegar:423

How to Delete Duplicate Records in MySQL While Keeping the Latest?

eliminando los registros duplicados en mySQL mientras preserva los últimos

en una base de datos, es común encontrar registros duplicados, particularmente en tablas con identificadores únicos. En MySQL, puede enfrentar una situación en la que los correos electrónicos se duplican, y desea retener solo el último con la identificación más reciente.

para resolver este problema, podemos emplear los siguientes pasos:

  1. identificar correos electrónicos duplicados: Determinar los correos electrónicos que aparecen más de una vez en la vez en la vez en el en el Tabla.
  2. Encuentre la última identificación para cada correo electrónico duplicado: para cada correo electrónico duplicado, recupere la identificación más alta, que representa la inserción más reciente.
  3. Dupplicates con ID más antiguos: Eliminar todos paso.

implementación:

Considere la siguiente tabla mysql nombrada prueba con la identificación de columnas y correo electrónico:

| id | email |
|---|---|
| 1 | aaa |
| 2 | bbb |
| 3 | ccc |
| 4 | bbb |
| 5 | ddd |
| 6 | eee |
| 7 | aaa |
| 8 | aaa |
| 9 | eee |

para eliminar los correos electrónicos duplicados y mantener los últimos, podemos ejecutar la siguiente consulta:

DELETE test
FROM test
INNER JOIN (
  SELECT MAX(id) AS lastId, email
  FROM test
  GROUP BY email
  HAVING COUNT(*) > 1
) duplic ON duplic.email = test.email
WHERE test.id  

Esta consulta recupera las últimas ID para correos electrónicos duplicados y elimina todos los duplicados con ID más antiguos. Después de ejecutar la consulta, la tabla de pruebas aparecerá de la siguiente manera:

| id | email |
|---|---|
| 3 | ccc |
| 4 | bbb |
| 5 | ddd |
| 8 | aaa |
| 9 | eee |

Solo se han conservado los últimos duplicados con las ID más altas, satisfaciendo el requisito de mantener las direcciones de correo electrónico más recientes en la tabla.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3