valores traer repetidos registros omitir mostrar eliminar duplicados datos consultar campos mysql sql duplicates delete-row sql-delete

traer - Encuentre duplicados o más en Mysql, elimínelos excepto la primera entrada



omitir repetidos mysql (3)

Tengo una tabla con filas como id, length, time y algunas de ellas son duplicadas, donde la longitud y la hora son las mismas en algunas filas. Quiero eliminar todas las copias de la primera fila enviada.

id | length | time 01 | 255232 | 1242 02 | 255232 | 1242 <- Delete that one

Tengo esto para mostrar todos los duplicados en la tabla.

SELECT idgarmin_track, length , time FROM `80dage_garmin_track` WHERE length in ( SELECT length FROM `80dage_garmin_track` GROUP BY length HAVING count(*) > 1 ) ORDER BY idgarmin_track, length, time LIMIT 0,500


Si puede mantener su tabla fuera de línea durante un período, la forma más sencilla es crear una nueva tabla que contenga los datos que desea y luego soltar la tabla original:

create table `80dage_garmin_track_un` like `80dage_garmin_track`; insert into `80dage_garmin_track_un` select min(idgarmin_track), length, time group by length, time; rename table `80dage_garmin_track` to old, `80dage_garmin_track_un` to `80dage_garmin_track`; drop table old;


tengo el mismo problema Holsteinkaa, solo lo uso así:

delete from table where id in ( select * from ( SELECT id FROM table t1 WHERE EXISTS (SELECT 1 from table t2 WHERE t1.field = t2.field AND t1.id > t2.id ) ) as tmp )

Estaba tratando de poner esto como un comentario a la respuesta de Michael Pakhantsov, pero no puedo: / lo siento


DELETE FROM `80dage_garmin_track` t1 WHERE EXISTS (SELECT 1 from `80dage_garmin_track` t2 WHERE t1.Length = t2.Length AND t1.Time = t2.Time AND t1.idgarmin_track > t2.idgarmin_track)