Supongamos que tengo un registro que se repite varias veces,
ID1 ID2 ID3
204 5616 45
204 5616 45
204 5616 45
204 5616 45
Necesito eliminar los ultimos 3 registros, dejando el primero, como identifico las filas a eliminar.
Y tu primary key ? Si tienes algún identificador único (auto-increment) es bastante fácil.
Ejemplo:
ID ID1 ID2 ID3
1 204 5616 45
2 204 5616 45
3 204 5616 45
4 204 5616 45
DELETE p1 FROM shellroot as p1,shellroot as p2 WHERE p1.ID > p2.ID AND p1.ID1=p2.ID1 AND p1.ID2=p2.ID2 AND p1.ID3=p2.ID3
Esto hará eliminar todas menos ID=1.
Sino, puedes mirar esto:
http://www.databasejournal.com/features/mysql/article.php/10897_2201621_2/Deleting-Duplicate-Rows-in-a-MySQL-Database.htm
La idea es crear una tabla temporal, meter todos los registros usando DISTINCT borrar la tabla principal y volver a crearla con registros de la temporal.
Saludos
El problema es que aveces pueden ser 1, 2, 3, 4, ... elementos duplicados. Pero lo acabe de solucionar agregando un valor autonumerico y después eliminarlo.