MySQL – Eliminar los duplicados en una tabla

Diciembre 2016

Para eliminar los duplicados en una tabla definida como:

CREATE TABLE IF NOT EXISTS TabTest (   
           clave_prim integer(4) NOT NULL auto_increment,
           x integer,
           y integer,
           z integer,
           Constraint pk_Tab_test PRIMARY KEY  (clave_prim)                           
);


Lo primero que hay que hacer es fijar los campos relativos a los duplicados (en nuestro caso los campos x e y):

mysql> select * from TabTest;
+----------+------+------+------+
| clave_prim | x    | y    | z    |
+----------+------+------+------+
|        1 |    1 |    2 |    3 |
|        2 |    1 |    2 |    3 |
|        3 |    1 |    5 |    4 |
|        4 |    1 |    6 |    4 |
+----------+------+------+------+
4 rows in set (0.00 sec)


Para eliminar los duplicados en los campos x e y ejecutar el comando:

ALTER IGNORE TABLE  TabTest ADD UNIQUE INDEX(x,y);


Consulta también :
El documento «MySQL – Eliminar los duplicados en una tabla» de CCM (es.ccm.net) se encuentra disponible bajo una licencia Creative Commons. Puedes copiarlo o modificarlo siempre y cuando respetes las condiciones de dicha licencia y des crédito a CCM.