Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

eliminar registros duplicados

Estas en el tema de eliminar registros duplicados en el foro de Mysql en Foros del Web. Saludos amigos, tengo una duda tengo una tabla (locales) con los siguientes campos : id_local, id_pais,id_departamento,id_distrito,id_direccion y tengo duplicados con los siguientes campos iguales(id_pais,id_departamento,id_distrito,id_dir eccion). ...
  #1 (permalink)  
Antiguo 25/11/2005, 23:56
 
Fecha de Ingreso: noviembre-2004
Mensajes: 159
Antigüedad: 20 años
Puntos: 0
Exclamación eliminar registros duplicados

Saludos amigos, tengo una duda

tengo una tabla (locales) con los siguientes campos :

id_local, id_pais,id_departamento,id_distrito,id_direccion

y tengo duplicados con los siguientes campos iguales(id_pais,id_departamento,id_distrito,id_dir eccion).

Pero con diferente (id_local).

Mi consulta es esta.

Hay alguna forma de eliminar esos registros duplicados ? como si estuvieramos en el ms-sql server con un proceso?

trabajo con el mysql 4.1.9.

Esperando su ayuda o orientación me despido ..

gracias

A. Acosta.
  #2 (permalink)  
Antiguo 28/11/2005, 10:20
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 22 años, 11 meses
Puntos: 11
a) Primeramente determinamos los campos que deseamos que no se encuentren duplicados, el siguiente ejemplo es una tabla con tres columnas

pk_column_1 pk_column_2 column_3
----------- ----------- --------
FRED 1234 234
FRED 1234 234
FRED 1234 112

b) Verificamos los campos que se van a eliminar (Asuminos que los campos duplicados son pk_column_1 y pk_column_2)

SELECT columns_of_interest
FROM table_name a
WHERE rowid > ( SELECT min(rowid)
FROM table_name b
WHERE b.pk_column_1 = a.pk_column_1
and b.pk_column_2 = a.pk_column_2 );

c) Cambiamos la sentencia SELECT por DELETE

DELETE
FROM table_name a
WHERE rowid > ( SELECT min(rowid)
FROM table_name b
WHERE b.pk_column_1 = a.pk_column_1
and b.pk_column_2 = a.pk_column_2 );
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
  #3 (permalink)  
Antiguo 22/01/2010, 15:28
 
Fecha de Ingreso: enero-2010
Mensajes: 1
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: eliminar registros duplicados

En el Query analizer haces una tabla temporal con la clausula disticnt y listo esto lo probe con campos del tipo uniqueidentifier

DECLARE @SQL VARCHAR(8000)

CREATE TABLE #temp_Flujos (UID_modelo VARCHAR(100) collate database_default NOT NULL PRIMARY KEY,modelo varchar(50),UID_Marca uniqueidentifier)

SET @sql = 'INSERT INTO #temp_Flujos select distinct*from Tabla1'

EXEC (@sql)


go

insert into Tabla1 select *from #temp_Flujos

drop table #temp_Flujos




Cita:
Iniciado por Linterns Ver Mensaje
a) Primeramente determinamos los campos que deseamos que no se encuentren duplicados, el siguiente ejemplo es una tabla con tres columnas

pk_column_1 pk_column_2 column_3
----------- ----------- --------
FRED 1234 234
FRED 1234 234
FRED 1234 112

b) Verificamos los campos que se van a eliminar (Asuminos que los campos duplicados son pk_column_1 y pk_column_2)

SELECT columns_of_interest
FROM table_name a
WHERE rowid > ( SELECT min(rowid)
FROM table_name b
WHERE b.pk_column_1 = a.pk_column_1
and b.pk_column_2 = a.pk_column_2 );

c) Cambiamos la sentencia SELECT por DELETE

DELETE
FROM table_name a
WHERE rowid > ( SELECT min(rowid)
FROM table_name b
WHERE b.pk_column_1 = a.pk_column_1
and b.pk_column_2 = a.pk_column_2 );
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 10:16.