Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
661 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Supprimer les doublons d'une base ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Supprimer les doublons d'une base ?

n°377729
molosse
Posté le 30-04-2003 à 10:56:08  profilanswer
 

Bonjour,  
 
J'aimerais savoir s'il existe un moyen plus ou moins simple d'effacer les doublons d'une base MySQL ?


---------------
Mon comparateur de prix préféré (le miens !):www.infomoinscher.net
mood
Publicité
Posté le 30-04-2003 à 10:56:08  profilanswer
 

n°377733
nero27
Posté le 30-04-2003 à 10:59:39  profilanswer
 

molosse a écrit :

Bonjour,  
 
J'aimerais savoir s'il existe un moyen plus ou moins simple d'effacer les doublons d'une base MySQL ?


et bien comme ça, je dirais qu'il faudrait exécuter une requête select * from xxx, puis comparer chaque résultat dans une boucle for à tous les résultats de cette même requête sous un autre nom !
 
C'est pt pas très clair, mais le principe est là :D


Message édité par nero27 le 30-04-2003 à 10:59:59
n°377739
El_gringo
Posté le 30-04-2003 à 11:04:47  profilanswer
 

Peut être un truc genre
Delete from (
   Select distinct * from TATABLE
};


Message édité par El_gringo le 30-04-2003 à 11:05:20
n°377741
nero27
Posté le 30-04-2003 à 11:05:38  profilanswer
 

El_gringo a écrit :

Peut être un truc genre
Delete from (
   Select distinct * from TATABLE
};


ah oui, c'est vrai, y'a de l'idée :)

n°377744
urd-sama
waste of space
Posté le 30-04-2003 à 11:07:08  profilanswer
 

faudrait faire le contraire en fait


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
n°377755
Masure
Posté le 30-04-2003 à 11:12:57  profilanswer
 

Une base de données par définition c'est pas sensé ne pas contenir de doublons justement?

n°377765
El_gringo
Posté le 30-04-2003 à 11:14:58  profilanswer
 

nero27 a écrit :


ah oui, c'est vrai, y'a de l'idée :)


 
Ouais, sauf que ça serait plus
Delete from TATABLE where (
  Select distinct * from TATABLE
};
 
en fait.

n°377780
nero27
Posté le 30-04-2003 à 11:20:42  profilanswer
 

El_gringo a écrit :


 
Ouais, sauf que ça serait plus
Delete from TATABLE where (
  Select distinct * from TATABLE
};
 
en fait.


C'est vrai que ça m'a l'air plus correct (j'avais complètement oublié "distinct" :D)

n°377801
molosse
Posté le 30-04-2003 à 11:25:07  profilanswer
 

El_gringo a écrit :


 
Ouais, sauf que ça serait plus
Delete from TATABLE where (
  Select distinct * from TATABLE
};
 
en fait.


 
Euhh Ca ca va me laisser un exemplaire unique de tous ceux qui etaient en doublons, mais ca va m'effacer aussi ceux qui n'avaient pas de doublons non ?


---------------
Mon comparateur de prix préféré (le miens !):www.infomoinscher.net
n°377805
urd-sama
waste of space
Posté le 30-04-2003 à 11:26:49  profilanswer
 

molosse a écrit :


 
Euhh Ca ca va me laisser un exemplaire unique de tous ceux qui etaient en doublons, mais ca va m'effacer aussi ceux qui n'avaient pas de doublons non ?


yesh


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
mood
Publicité
Posté le 30-04-2003 à 11:26:49  profilanswer
 

n°377808
El_gringo
Posté le 30-04-2003 à 11:26:56  profilanswer
 

molosse a écrit :


 
Euhh Ca ca va me laisser un exemplaire unique de tous ceux qui etaient en doublons, mais ca va m'effacer aussi ceux qui n'avaient pas de doublons non ?


 
Si ! :D

n°377822
El_gringo
Posté le 30-04-2003 à 11:30:59  profilanswer
 

Mais comme ça :
DELETE FROM Tatable WHERE (
   SELECT DISTINCT * FROM Tatable
   INTERSECT
   SELECT * FROM Tatable;
)
ça roule (j'pense :D)
 
PS:Essaye d'abbord de faier un :
   SELECT DISTINCT * FROM Tatable
   INTERSECT
   SELECT * FROM Tatable;
histoire de voir ce que ça te sort.

n°377823
molosse
Posté le 30-04-2003 à 11:31:14  profilanswer
 

PAs de solutions ?


---------------
Mon comparateur de prix préféré (le miens !):www.infomoinscher.net
n°377829
molosse
Posté le 30-04-2003 à 11:31:45  profilanswer
 

Bien pensé el gringo .. j'essaye ca ce soir ..


---------------
Mon comparateur de prix préféré (le miens !):www.infomoinscher.net
n°377832
El_gringo
Posté le 30-04-2003 à 11:32:20  profilanswer
 

Ha non :D
Mais on s'rapproche !

n°377835
molosse
Posté le 30-04-2003 à 11:32:45  profilanswer
 

Euhh non a bien y reflechir ca va faire pareil (le select distinct est inclu dans le select simple, d'ou l'intersection=select distinct : la meme merde ..)
 
 :D


Message édité par molosse le 30-04-2003 à 11:33:06

---------------
Mon comparateur de prix préféré (le miens !):www.infomoinscher.net
n°377838
molosse
Posté le 30-04-2003 à 11:33:40  profilanswer
 

On peu faire des Moins ?


---------------
Mon comparateur de prix préféré (le miens !):www.infomoinscher.net
n°377840
urd-sama
waste of space
Posté le 30-04-2003 à 11:34:15  profilanswer
 

faut faire
DELETE
  select *
  intersect
  select distinct


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
n°377853
El_gringo
Posté le 30-04-2003 à 11:37:54  profilanswer
 

Urd-sama a écrit :

faut faire
DELETE
  select *
  intersect
  select distinct


 
c exactement la même chose que j'ai fait (une intersection c'est... je sais plus le mot, mais c'est pareil dans un sens ou dans l'autre !)

n°377856
urd-sama
waste of space
Posté le 30-04-2003 à 11:38:28  profilanswer
 

on est cons, c'est MINUS qu'il faut utiliser


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
n°377873
molosse
Posté le 30-04-2003 à 11:42:53  profilanswer
 

Ouaip .. minus a l'air d'etre OK ...  :jap:  
 
Merci les gars !!


---------------
Mon comparateur de prix préféré (le miens !):www.infomoinscher.net
n°377874
El_gringo
Posté le 30-04-2003 à 11:43:00  profilanswer
 

....Vooooila. J'étais sure qu'il y avait un truc pour faire ça.

n°377880
urd-sama
waste of space
Posté le 30-04-2003 à 11:44:05  profilanswer
 

rien de tel qu'une présentation en patate sur le papier pour s'y retrouver  :D


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
n°377885
nero27
Posté le 30-04-2003 à 11:45:40  profilanswer
 

Urd-sama a écrit :

rien de tel qu'une présentation en patate sur le papier pour s'y retrouver  :D  


jolie métaphore :)

n°377893
urd-sama
waste of space
Posté le 30-04-2003 à 11:46:33  profilanswer
 

nero27 a écrit :


jolie métaphore :)


mais non, ca a un nom mathématique ces trucs
les "ensembles" machin-chose là


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
n°377897
molosse
Posté le 30-04-2003 à 11:47:57  profilanswer
 

Et dire que je finis ma thèse en mathématiques pures en ce moment  :D


---------------
Mon comparateur de prix préféré (le miens !):www.infomoinscher.net
n°377910
nero27
Posté le 30-04-2003 à 11:50:03  profilanswer
 

molosse a écrit :

Et dire que je finis ma thèse en mathématiques pures en ce moment  :D  


petit joueur...
 
 
 
 
... [:dehors2]

n°377911
El_gringo
Posté le 30-04-2003 à 11:50:06  profilanswer
 

Urd-sama a écrit :


mais non, ca a un nom mathématique ces trucs
les "ensembles" machin-chose là


 
les ensembles tout court j'crois !

n°377917
molosse
Posté le 30-04-2003 à 11:51:37  profilanswer
 

theorie des ensembles oui ...


---------------
Mon comparateur de prix préféré (le miens !):www.infomoinscher.net
n°377957
molosse
Posté le 30-04-2003 à 12:00:31  profilanswer
 

Euhh la syntaxe exacte c'est quoi ?
 
SELECT * FROM ((select * from base) minus (select distinct * from base))


---------------
Mon comparateur de prix préféré (le miens !):www.infomoinscher.net
n°377961
urd-sama
waste of space
Posté le 30-04-2003 à 12:01:25  profilanswer
 

((select * from base) minus (select distinct * from base))  
 tout court pour l'instant


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
n°377970
molosse
Posté le 30-04-2003 à 12:04:09  profilanswer
 

Il me dit 'erreur de syntaxe near ...'


---------------
Mon comparateur de prix préféré (le miens !):www.infomoinscher.net
n°377971
urd-sama
waste of space
Posté le 30-04-2003 à 12:05:04  profilanswer
 

mysql ne supporte peut-etre pas MINUS, ou alors c'est un autre mot


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
n°378021
Tetragramm​aton IHVH
dieu unique => pensée unique
Posté le 30-04-2003 à 12:37:04  profilanswer
 

Urd-sama a écrit :

mysql ne supporte peut-etre pas MINUS, ou alors c'est un autre mot  


 
MySQL ne reconnait pas les requetes imbriquées alors pour le MINUS, tu peux oublier.  
 
Utilise des clés primaires pour eviter les doublons ou un vrai SGBD.


---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
n°378054
arghbis
salops de dauphins
Posté le 30-04-2003 à 12:56:18  profilanswer
 

solution brutale :  
createdb manewdbpasredondante
createtable toutes tes tables puis pour chacune :
select distinct * from tatable;
 
puis insert de chaque résultat dans ta nouvelle DB.
 
solution moins bourrin, utilise un vrai SGBDR, revois ta conception des tables (à part dans certains cas précis, avoir des doublons c avoir une mauvaise conception), ou bien encore, passe à une version de MySQL vraiment relationelle (utilisant innoDB et requêtes imbriquées).
 

n°378065
molosse
Posté le 30-04-2003 à 13:05:56  profilanswer
 

Ok c'est encore le mieux.
 
Merci à vous tous !


---------------
Mon comparateur de prix préféré (le miens !):www.infomoinscher.net
n°2148273
pboulerie
Posté le 05-07-2012 à 14:39:54  profilanswer
 

Le blog suivant donne une solution basée sur la commande mySQL Alter Ignore :
http://blogmotion.fr/programmation [...] ssion-1588

n°2148362
Oliiii
Posté le 06-07-2012 à 08:23:34  profilanswer
 

En 9 ans, 2 mois et 5 jours, je crois qu'il aura trouvé une solution...

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Supprimer les doublons d'une base ?

 

Sujets relatifs
acceder a une base access protege par un mot de passe avec VBProblème d'enregistrement d'une base de données sous C++ builder
[PHP] Supprimer les doubles espacesmultiplication, division, soustraction et modulo en base x
[algo] tri de liste+retirer les doublonsCréation d'une appli avec base de données de film avi
[PHP/MYSQL] Creer une base de donnés MYSQL en php , sans php my admin?Recherche base de données
Se connecter à une base ACCESS ?Comment supprimer les barres de navigation
Plus de sujets relatifs à : Supprimer les doublons d'une base ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR