Ver Mensaje Individual
  #4 (permalink)  
Antiguo 03/11/2010, 04:06
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Borrar duplicados

Yo te entendí. Tu no has entendido cómo se implementa eso.

Para poder borrar un conjunto de datos duplicados, lo primero que debes lograr es, o agrupar los que quieres mantener o determinar los que quieres eliminar.
En el primer caso deberías:
- Volcar en una tabla nueva todos aquellos que quieres mantener, descartando los duplicados.
- Vaciar la tabla original.
- Volver a poner en la tabla original los que guardaste.
-Eliminar la tabla transitoria.

En el segundo caso:
- Determinar, por medio de una consulta, qué condición o condiciones cumplen solamente los registros que deseas borrar, volcando lo todo en una tabla temporal.
- Iterar uno a uno los registros encontrados y borrarlos de la tabla origen.
- Descartar la tabla temporal.

No puedes indicar simplemente borrar esos registros, porque si el contenido de las duplicidades es exactamente el mismo entre dos registros dados, MySQL no podrá diferenciar entre ambos y los borrará todos. Por eso la forma simple es hacer alguno de los dos procesos que te menciono.

En cualquier caso tu problema es un problema de lógica y no de sentencias: ¿Cómo lograr determinar cuáles registros descartar, sin descartar todos?

Por otro lado, esto:
Cita:
Por ejemplo dos personas distintas con el mismo teléfono, pues yo quiero borrar a una de esas personas para tener sólo un teléfono.
no tiene mucho sentido para mí...
¿Qué representa esa tabla, en donde lo importante es el teléfono y no la persona?
¿Cómo defines con qué persona quedarte?

Me parece que tienes que plantearte mejor el problema.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)