sql >> Databasteknik >  >> RDS >> Mysql

ta bort dubbletter av rader och måste behålla en från alla i 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

När du har kört delete-satsen, genomdriv en unik begränsning på kolumnen så att du inte kan infoga dubbletter av poster igen,

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


  1. Mysql - beställa efter anpassad?

  2. MySQL-fråga för att hitta kunder som har beställt två specifika produkter

  3. Java ZonedDateTime sparas i databasen

  4. är att vara möjligt i mysql upprepa samma resultat