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:
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.idEsta 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.
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