Foros del Web » Programación web » PHP »

Borrar filas duplicadas en base de datos sql

Estas en el tema de Borrar filas duplicadas en base de datos sql en el foro de PHP en Foros del Web. Hola solo eso. Se puede buscar y borrar filas duplicadas en sql con php digamos que la tabla 'clientes' tiene el campo 'email' y que ...
  #1 (permalink)  
Antiguo 05/05/2008, 02:39
 
Fecha de Ingreso: diciembre-2005
Ubicación: Barcelona
Mensajes: 1.398
Antigüedad: 8 años, 11 meses
Puntos: 14
Borrar filas duplicadas en base de datos sql

Hola solo eso.

Se puede buscar y borrar filas duplicadas en sql con php

digamos que la tabla 'clientes' tiene el campo 'email' y que hay registros que están duplicados.

Si ejecuto este codigo en MySqlAdmin me devuelve todo los duplicados.


SELECT email,
COUNT(email) AS NumOccurrences
FROM clientes
GROUP BY email
HAVING ( COUNT(email) > 1 )

Pero como hago para borrar el duplicado (o sea, que quede solo un registro)

gracias

saludos
  #2 (permalink)  
Antiguo 05/05/2008, 05:17
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 10 años, 8 meses
Puntos: 62
Re: Borrar filas duplicadas en base de datos sql

Código PHP:
$select="SELECT email, COUNT(email) AS NumOccurrences FROM clientes GROUP BY  email HAVING ( COUNT(email) > 1 )";
$select=mysql_query($select);
while(
$row mysql_fetch_array($select))
 {
   
$delete="delete from clientes where email like '".$row['email']."' limit ".intval($row['NumOccurrences'])-1;
   
$delete=mysql_query($delete);
 } 
se me ocurre esto, que te parece?

solo valido para mysql, con limit le decimos que solamente haga x-1 veces ya que queremos que exista uno.

De todas formas si quieres que solo exista uno, ponlo como unique.
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #3 (permalink)  
Antiguo 05/05/2008, 05:55
 
Fecha de Ingreso: diciembre-2005
Ubicación: Barcelona
Mensajes: 1.398
Antigüedad: 8 años, 11 meses
Puntos: 14
Re: Borrar filas duplicadas en base de datos sql

gracias zital.
lo pruebo y te cuento.


saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:42.
SEO by vBSEO 3.3.2