Requête MySQL besoin d'aide
8 messages
• Page 1 sur 1
-

julien__ - WRInaute occasionnel

- Messages: 362
- Inscription: 28 Déc 2006
Requête MySQL besoin d'aide
Bonsoir,
Je voudrais faire une requête qui me retourne tous les enregistrements qui ont un doublon, sur ce principe.
"le champ personne" exemple ci-dessous...
'Julien Lepers,Antoine Brévin,Jean Decoin,Antoine Brévin,George Arigton'
Dans cette chaine de caractère avec des noms séparés par des virgules, il y a deux fois le même nom (Antoine Brévin)
Je voudrais donc une requête qui me retourne tous les champs qui possèdent deux fois le même nom (ou plus)
C'est un champs TEXT, dont les noms sont séparés par des virgules. Il me faudrait une expression régulière, mais en MySQL !?!?
Je voudrais faire une requête qui me retourne tous les enregistrements qui ont un doublon, sur ce principe.
"le champ personne" exemple ci-dessous...
'Julien Lepers,Antoine Brévin,Jean Decoin,Antoine Brévin,George Arigton'
Dans cette chaine de caractère avec des noms séparés par des virgules, il y a deux fois le même nom (Antoine Brévin)
Je voudrais donc une requête qui me retourne tous les champs qui possèdent deux fois le même nom (ou plus)
C'est un champs TEXT, dont les noms sont séparés par des virgules. Il me faudrait une expression régulière, mais en MySQL !?!?
- FloBaoti
- WRInaute impliqué

- Messages: 755
- Inscription: 30 Avr 2006
Re: Requête MySQL besoin d'aide
Si je peux me permettre, la conception de ta table est complètement à revoir. Tu ne respectes même pas la 1ère Forme Normale (Les attributs contiennent une valeur atomique).
http://fr.wikipedia.org/wiki/Forme_normale_%28bases_de_donn%C3%A9es_re ... nnelles%29
Par conséquent, tu ne pourras rien faire de viable avec une telle conception...
http://fr.wikipedia.org/wiki/Forme_normale_%28bases_de_donn%C3%A9es_re ... nnelles%29
Par conséquent, tu ne pourras rien faire de viable avec une telle conception...
-

julien__ - WRInaute occasionnel

- Messages: 362
- Inscription: 28 Déc 2006
Re: Requête MySQL besoin d'aide
FloBaoti a écrit:Si je peux me permettre, la conception de ta table est complètement à revoir. Tu ne respectes même pas la 1ère Forme Normale (Les attributs contiennent une valeur atomique).
http://fr.wikipedia.org/wiki/Forme_normale_%28bases_de_donn%C3%A9es_re ... nnelles%29
Par conséquent, tu ne pourras rien faire de viable avec une telle conception...
C'est juste un champ informatif, il n'y a pas de requêtes qui se fait dessus. C'est juste un mini résumé, facilement accessible dans cette table. Tous les noms se trouvent dans une table noms. Toutefois, j'ai des doublons dans ce champ, et sa fait tâche, il faut que je m'en débarrasse.
Tu ne connais pas une manière de supprimer les autres occurrences d'une chaîne dans une chaîne, et ceci au niveau MySQL, sans PHP. Sinon en PHP...
-

julien__ - WRInaute occasionnel

- Messages: 362
- Inscription: 28 Déc 2006
Re: Requête MySQL besoin d'aide
Bon je reviens sur ce post pour vous montrer comment j'ai fait avec MySQL n'avait pas le temps de faire ça en PHP.
Donc en résumé j'avais une base de données comportant 7000 entrées, et dont un champ comportait des doublons sur environ une 100 d'enregistrements. le champ en question se compose comme suit : nom1,nom2,nom3,nom4,nom1,nom5
Comment retrouver les champs qui ont un doublon dans un champ texte dont les entrées sont séparées par des virgules.
SELECT champ FROM mabase WHERE LENGTH(SUBSTRING_INDEX(champ,SUBSTRING(champ,LENGTH(SUBSTRING_INDEX( champ, ',', 1 ))+2,LENGTH(SUBSTRING_INDEX( champ, ',', 2 ))-LENGTH(SUBSTRING_INDEX( champ, ',', 1 ))) ,2)) < LENGTH(champ) AND champ LIKE '%,%'
cette requête m'a permis de les retrouver pour les traiter manuellement.
Donc en résumé j'avais une base de données comportant 7000 entrées, et dont un champ comportait des doublons sur environ une 100 d'enregistrements. le champ en question se compose comme suit : nom1,nom2,nom3,nom4,nom1,nom5
Comment retrouver les champs qui ont un doublon dans un champ texte dont les entrées sont séparées par des virgules.
SELECT champ FROM mabase WHERE LENGTH(SUBSTRING_INDEX(champ,SUBSTRING(champ,LENGTH(SUBSTRING_INDEX( champ, ',', 1 ))+2,LENGTH(SUBSTRING_INDEX( champ, ',', 2 ))-LENGTH(SUBSTRING_INDEX( champ, ',', 1 ))) ,2)) < LENGTH(champ) AND champ LIKE '%,%'
cette requête m'a permis de les retrouver pour les traiter manuellement.
-

Julia41 - WRInaute passionné

- Messages: 1765
- Inscription: 31 Aoû 2007
Re: Requête MySQL besoin d'aide
julien__ a écrit:Bon je reviens sur ce post pour vous montrer comment j'ai fait avec MySQL n'avait pas le temps de faire ça en PHP.
Donc en résumé j'avais une base de données comportant 7000 entrées, et dont un champ comportait des doublons sur environ une 100 d'enregistrements. le champ en question se compose comme suit : nom1,nom2,nom3,nom4,nom1,nom5
Comment retrouver les champs qui ont un doublon dans un champ texte dont les entrées sont séparées par des virgules.
SELECT champ FROM mabase WHERE LENGTH(SUBSTRING_INDEX(champ,SUBSTRING(champ,LENGTH(SUBSTRING_INDEX( champ, ',', 1 ))+2,LENGTH(SUBSTRING_INDEX( champ, ',', 2 ))-LENGTH(SUBSTRING_INDEX( champ, ',', 1 ))) ,2)) < LENGTH(champ) AND champ LIKE '%,%'
cette requête m'a permis de les retrouver pour les traiter manuellement.
Une autre technique aurait été d'INSERT ces "noms" dans une nouvelle table avec un INDEX UNIQ, et en cas de doublon ON DUPLICATE KEY... Du coup après tu as ton truc "propre".
8 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- aide requete MYSQL
- Requete Mysql AIDE svp !
- Aide pour requête MySQL
- Aide requête MySQL avec count
- Aide php/mysql requête svp
- Aide pour une requête MySQL
- Aide pour optimiser l'écriture d'une requete PHP/MYSQL
- Besoin d'aide : intégration lien d'une requete mysql
- Résolu : Besoin d'aide sur une requete MySQL
- [PHP/MYSQL] Besoin d'aide dans une requête
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


