Requête SQL pour supprimer les doublons dans une table Par JarodxXx
le vendredi 21 novembre 2008, 10:33
J'ai souvent cherché cette requête alors je la poste ici comme mémo personnel, et je suis certain qu'elle servira à quelqu'un ...
La solution proposée ici consiste à dupliquer votre table afin de définir un point de comparaison et de lancer la requête qui suit ...
Avant toute chose pensez à corriger la requête avec le nom de vos champs !!
<Table_originale>
<Table_dupliquée>
<champs_a_comparer>
Inutile de préciser à quoi correspondent ces valeurs ...
DELETE FROM <Table_originale>
WHERE <Table_originale>.id NOT IN (select min(<Table_dupliquée>.id)
FROM <Table_dupliquée> WHERE <Table_originale>.email=<Table_dupliquée>.<champs_a_comparer>
GROUP BY <Table_dupliquée>.<champs_a_comparer>)
PS : La requête est extrêmement lourde à l'exécution alors lancez-la de préférence la nuit quand le serveur est moins sollicité.
Bonus :














Ziki
Dailymotion
Flickr
Technorati
Twitter
1. Le vendredi 21 novembre 2008, 11:08 par Masto
Euh...
Save_AlerteInscriptionClub = <Table_dupliquée> ?
Rah !
2. Le vendredi 21 novembre 2008, 12:00 par Julien Coquet
Plus souple
http://mediakey.dk/~cc/mysql-remove...
3. Le vendredi 21 novembre 2008, 12:21 par JarodxXx
le mini bug est corrigé , c'etait en effet la table dupliquée
4. Le samedi 7 novembre 2009, 22:26 par Antonin
J'ai lancé un script pour récuperer toute les coordonnées gps manquante (sisi), pour donner des distance entre 2 villes...
Me contacter pour les update SQL