Eliminar Datos Duplicados en Tabla MySQL

  • Autor Autor ubuwolf
  • Fecha de inicio Fecha de inicio
ubuwolf

ubuwolf

Iota
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Buena muchachada de forobeta; tengo una pequeña consultar que quizás puedan ayudarme a salvar.
Resulta que tengo una tabla con varios campos y como 400.000 datos.
De esos datos tengo muchos que se me han repetido.
quisiera eliminar todos los datos repetidos solo dejando una sola alta dentro de la tabla....

supongamos que tengo algo así:

id / nombre / descripción

y 5 altas diferente id, mismo nombre misma descripción quiero eliminar 4 de esos y dejar solo 1..... nose si me explico.... esoty medio dormido.:encouragement::encouragement::encouragement:

gracias al alma que me ayude! jeje
 
podrias intentar creando una nueva tabla para migrar los registros que no se van a duplicar , utilizando un lenguage de programacion del lado de servidor

recorres todos datos de cada fila de la tabla
SELECT * FORM table_name

luego para ingresar los nuevos datos en la nueva tabla hay que validar si que existen o no
SELECT COUNT(*) FROM table_name WHERE name = '' and register = '';

SI no existe entonces hacer INSERT de la fila de registro

INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)

ingresara los datos sin duplicar
 
Última edición:
Esto se solucione en pocos segundos, primero crea una tabla temporal igual a la tabla que tiene los datos duplicados agrupando los campos que supuestamente esta repetidos, yo en este ejemplo le pongo los 2 que mencionas sin mencionar el ID que ese se autoincrementa supongo.

CREATE TABLE mi_tabla_temporal AS SELECT * FROM mi_tabla GROUP BY (nombre,descripcion);

Luego de verificar que exista la tabla mi_tabla_temporal y ver que este todo correcto procedes a borrarla.

DELETE TABLE mi_tabla;

Una vez borrata renombras la temporal.

RENAME TABLE mi_tabla_temporal TO mi_tabla;

Y listo!
 
Intenta algo como:
PHP:
DELETE FROM table_name WHERE id NOT IN(
    SELECT MIN(id)
        FROM table_name
        GROUP BY TRIM(nombre)
);

Saludos.
 
Esto se solucione en pocos segundos, primero crea una tabla temporal igual a la tabla que tiene los datos duplicados agrupando los campos que supuestamente esta repetidos, yo en este ejemplo le pongo los 2 que mencionas sin mencionar el ID que ese se autoincrementa supongo.

CREATE TABLE mi_tabla_temporal AS SELECT * FROM mi_tabla GROUP BY (nombre,descripcion);

Luego de verificar que exista la tabla mi_tabla_temporal y ver que este todo correcto procedes a borrarla.

DELETE TABLE mi_tabla;

Una vez borrata renombras la temporal.

RENAME TABLE mi_tabla_temporal TO mi_tabla;

Y listo!

así como esta me tira un error nose cuando le doy al CREATE me larga

#1241 - Operand should contain 1 column(s)
 
Atrás
Arriba