2 techniques pour supprimer les doublons MySQL sur plusieurs colonnes
Il arrive parfois de devoir injecter des données dans un schema existant.
Sauf que si l'on a des clés uniques, ca peut vite compliquer l'import.
Voici donc 2 techniques pour supprimer les doublons d'une table a partir d'une requête SQL.
Supprimer les doublons avec une sous-requête. Si vous avez plus de doublons, vous pouvez répéter la requête jusqu'à ne plus avoir de doublons.
DELETE FROM my_table
WHERE id IN (
SELECT calc_id FROM (
SELECT MAX(id) AS calc_id
FROM my_table
GROUP BY field1, field2, field3
HAVING COUNT(id) > 1
) temp
)
Ou si le serveur MySQL a une version antérieure a 5.6. Cela supprimera automatiquement les doublons en ne gardant que le premier enregistrement trouvé.
ALTER IGNORE TABLE your_table ADD UNIQUE (field1,field2,field3);