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

Comment supprimer les lignes en double dans ma base de données MySQL ? (Conservez celui dont l'ID principal est le plus bas)

Quelque chose comme ceci devrait fonctionner :

DELETE FROM `table` 
WHERE `id` NOT IN (
    SELECT MIN(`id`) 
    FROM `table`
    GROUP BY `download_link`)

Juste pour être sûr, avant d'exécuter la requête de suppression proprement dite, vous pouvez effectuer une sélection équivalente pour voir ce qui est supprimé :

SELECT * FROM `table` 
WHERE `id` NOT IN (
    SELECT MIN(`id`) 
    FROM `table`
    GROUP BY `download_link`)