Mysql
 sql >> Base de données >  >> RDS >> Mysql

supprimez les lignes en double et devez en garder une de toutes dans mysql

DELETE  a
FROM    tableA a
        LEFT JOIN
        (
            SELECT MIN(ID) ID, Name, Phone
            FROM    TableA
            GROUP   BY Name, Phone
        ) b ON  a.ID = b.ID AND
                a.NAme = b.Name AND
                a.Phone = b.Phone
WHERE   b.ID IS NULL

Après avoir exécuté l'instruction de suppression, appliquez une contrainte unique sur la colonne afin de ne plus pouvoir insérer d'enregistrements en double,

ALTER TABLE TableA ADD CONSTRAINT tb_uq UNIQUE (Name, Phone)