Bonjour
SVP, comment supprimer les enregistrements doublés d' une table en SQL
Bonjour
SVP, comment supprimer les enregistrements doublés d' une table en SQL
Merci pour la réponse
pas toutes les colonnes mais je dois voir sur 5 colonnes
OK donc tu as des colonnes a,b,c,d,e qui doivent être distinctes, mais est-ce que :
1- la colonne a doit être unique, idem la colonne b, etc
2- c'est la valeur (a,b,c,d,e) qui dont être unique
dans ma table j'ai 18 champs mais je doit filtrer les doublon sur 5 champs, comme si une clé de 5 champs, mais ya pas de clé , aprés que je supprime les enregistrements doublé je ferai la clé.donc je dois faire le filtrage sur 5champs
Soit tu créé une nouvelle table (merci la syntaxe non standard mysql) :
CREATE TABLE nouvelle AS SELECT * FROM ancienne GROUP BY a,b,c,d,e,f;
Ou alors tu fais :
SELECT count(*) AS nombre, a,b,c,d,e,f FROM table GROUP BY a,b,c,d,e,f HAVING count(*) > 1
ça te donne les duplicatas
mets ça dans un DELETE, je ne me souviens plus la syntaxe pour les DELETE avec JOIN mais tu devrais trouver
voila la requette avec 3 champs qui affiche les doublon je ne sais pas si c'est juste.
avec 1 seul champ ça fonctionne avec 3champs j'attend depuis 5mnts
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT * FROM INSELEVE1 t1 JOIN ( SELECT `col1,col2,col3` FROM INSELEVE1 GROUP BY `col1,col2,col3` HAVING count(*) != 1 ) t2 USING (`col1,col2,col3`) ORDER BY `col1`
Si tu fais juste ça :
CREATE TABLE temp_doublons AS
SELECT count(*) as nombre, col1,col2,col3
FROM INSELEVE1
GROUP BY col1,col2,col3 HAVING count(*) > 1
ça prend combien de temps et ça retourne combien de doublons ?
y'a combien de lignes dans ta table ?
(là je le mets dans une table temp, tu peux la réutiliser ensuite sans avoir à refaire ta longue requête, c'est plus pratique si tu veux examiner les doublons par exemple)
Merci bcp , j'ai trouvé cette solution en cette page
http://blogmotion.fr/programmation/p...ppression-1588.
la creation d'un index elimine les enregistrements doublés.
merci bcp
Partager