Escenario: Tengo pocos contactos duplicados en una tabla. Los duplicados están identificados, puedo eliminarlos pero el problema es que no quiero perder los datos que el duplicado podría tener y los originales no. ¿Algun consejo? datosMySQL - Eliminación de duplicados y preservación de datos valiosos?
muestra:
ID Name Email School Dupe_Flag Key
1 AAA [email protected] X 1
2 AAB JKL 1
3 BBB [email protected] MNO X 2
4 BBC 2
salida deseada:
ID Name Email School Dupe_Flag Key
1 AAA [email protected] X 1
2 AAB [email protected] JKL 1
3 BBB [email protected] MNO X 2
4 BBC [email protected] MNO 2
cómo se relacionan 2 registros? : Ambos tienen el mismo valor de clave con solo una columna que tiene el Dupe_Flag SET que es la columna duplicada.
En el caso de la identificación por encima de 1 va a ser eliminado, pero Información de correo electrónico de identificación 1 debe ser aplicado a Identificación 2.
¿Qué son los datos? : Tengo pocas cientos filas y pocos 100 duplicados. La instrucción UPDATE para cada fila es engorrosa y no es factible.
Las reglas de negocio para determinar qué datos tiene prioridad:
Si una columna del registro original/bueno (Dupe_Flag NO está establecido) no tiene datos y si el registro Dupe correspondiente (tiene el mismo valor de clave) la columna tiene datos entonces esa columna de registro original debe actualizarse.
¡Cualquier ayuda/script es realmente apreciada! Gracias chicos :)
¿Cómo podemos ver las filas que se tiene en cuenta ¿duplicar? ¿Cómo podemos saber qué columnas de los engaños considera más valiosas que la columna correspondiente en la fila que desea conservar? - sin una especificación, no puede automatizar la operación. –
Primero necesita definir sus propias reglas comerciales para determinar qué datos tienen prioridad en caso de conflicto. – Dolph
Dupe_Flag indica que es un duplicado. ¿Qué datos tienen prioridad? - Simple realmente. Si alguna de las columnas para el registro original (bueno) es NULA y si las mismas columnas NO SON NULAS en el registro Duplicado, entonces simplemente actualizamos esas columnas. Actualicé mi pregunta para mayor claridad. ¡Gracias! – ThinkCode