sql >> Database teknologi >  >> RDS >> Mysql

Sådan sletter du dublerede rækker fra en MySQL-tabel

DELETE DupRows.*
FROM MyTable AS DupRows
   INNER JOIN (
      SELECT MIN(ID) AS minId, col1, col2
      FROM MyTable
      GROUP BY col1, col2
      HAVING COUNT(*) > 1
   ) AS SaveRows ON SaveRows.col1 = DupRows.col1 AND SaveRows.col2 = DupRows.col2
      AND SaveRows.minId <> DupRows.ID;

Selvfølgelig skal du udvide col1, col2 alle tre steder til alle kolonner.

Edit:Jeg har lige trukket dette ud af et script, jeg beholder og testede igen, det udføres i MySQL.



  1. Sådan opdaterer du automatisk data i databasen i PHP

  2. MySQL:Hvordan vælger jeg poster for denne uge?

  3. host localhost har ikke tilladelse til at oprette forbindelse til denne MySQL-server

  4. Har ikke databaselås! i android