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

Comment supprimer les lignes en double d'une table MySQL

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;

Bien sûr, vous devez étendre col1, col2 aux trois endroits sur toutes les colonnes.

Edit :Je viens de retirer ceci d'un script que je conserve et re-teste, il s'exécute dans MySQL.