Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

exclua linhas duplicadas e precisa manter uma de todas elas no 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

Depois de executar a instrução delete, imponha uma restrição exclusiva na coluna para que você não possa inserir registros duplicados novamente,
ALTER TABLE TableA ADD CONSTRAINT tb_uq UNIQUE (Name, Phone)