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

Eliminar duplicados en tabla

Estas en el tema de Eliminar duplicados en tabla en el foro de Mysql en Foros del Web. Hola amigos del Foro, tengo una tabla en la cual los registros se han duplicado, es decir hay 2 registros idènticos para cada código en ...
  #1 (permalink)  
Antiguo 16/03/2006, 10:35
Avatar de elwata  
Fecha de Ingreso: junio-2005
Mensajes: 156
Antigüedad: 19 años, 5 meses
Puntos: 0
Eliminar duplicados en tabla

Hola amigos del Foro, tengo una tabla en la cual los registros se han duplicado, es decir hay 2 registros idènticos para cada código en mi tabla....cómo puedo hacer para que en mi tabla de Mysql sólamente me quede un registro para cada código.

Gracias

Elwata
  #2 (permalink)  
Antiguo 16/03/2006, 15:31
Avatar de haron  
Fecha de Ingreso: febrero-2004
Ubicación: Cádiz (refinitivo)
Mensajes: 632
Antigüedad: 20 años, 9 meses
Puntos: 3
lo primero que debes hacer es identificar aquellos registros duplicados.
puedes crear una tabla auxiliar con la misma estructura que la tabla original.

si tu tabla se llama "mi_tabla" crea una nueva tabla con los mismo campos y llamale "mi_tabla_auxiliar".

imagina que tu tabla tiene dos campos (codigo y nombre) y que los registros que quieres eliminar son los que tienen duplicado el campo "nombre".

la siguiente sentencia:
Código:
select codigo, nombre
from mi_tabla
group by nombre
te devolvera los registros sin duplicar. ahora solo tienes que hacer
Código:
insert into mi_tabla_auxiliar(codigo, nombre)
select codigo, nombre
from mi_tabla
group by nombre
una vez que tienes todos los registros guardados en "mi_tabla_auxiliar", solo tienes que borrar "mi_tabla" y renombrar "mi_tabla_auxiliar" con el nombre "mi_tabla".

mas o menos.
__________________
Si ocurre algo importante, estamos afuera fumándonos unos cigarritos.
  #3 (permalink)  
Antiguo 17/03/2006, 08:34
 
Fecha de Ingreso: marzo-2006
Mensajes: 10
Antigüedad: 18 años, 8 meses
Puntos: 0
muy interesante, una pregunta... si tengo una tabla donde no quiero que haya un duplicado de un registro, pero si permite que se repita ciertos campos de la tabla, o sea, tengo nombre, apellido, telefono; se puede ingresar el mismo nombre pero con apellido diferente, o el mismo nombre y apellidos pero con telefono diferentes.. me entiendes, pueden darse ciertos casos... entonces podria utilizar lo siguiente:

select *
from usuarios
group by nombre,apellidos,telefono

me regresaria solo los que no estan para nada repetidos?o no..., sino no, como podria hacerlo...
  #4 (permalink)  
Antiguo 17/03/2006, 15:05
Avatar de haron  
Fecha de Ingreso: febrero-2004
Ubicación: Cádiz (refinitivo)
Mensajes: 632
Antigüedad: 20 años, 9 meses
Puntos: 3
la sentencia anterior te serviria para este proposito.
__________________
Si ocurre algo importante, estamos afuera fumándonos unos cigarritos.
  #5 (permalink)  
Antiguo 18/03/2006, 02:27
Avatar de elwata  
Fecha de Ingreso: junio-2005
Mensajes: 156
Antigüedad: 19 años, 5 meses
Puntos: 0
Gracias por la Ayuda...

Salu2

Elwata
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 09:58.