Afficher les doublons dans une bdd MYSQL
So-called-punk
Messages postés
15
Date d'inscription
Statut
Membre
Dernière intervention
-
dam75 Messages postés 1063 Date d'inscription Statut Webmaster Dernière intervention -
dam75 Messages postés 1063 Date d'inscription Statut Webmaster Dernière intervention -
Bonjour,
Après plusieurs recherches sur les doublons dans une bdd MYSQL sur le net, je n'ai rien trouvé qui correspondrait à ma recherche.
Voilà, je travaille actuellement dans une librairie, avec une base de données MYSQL.
Alors j'explique: on a une liste d'auteurs, avec nom et prénom (plus d'autres champs), et il existe certains auteurs en double.
Exemple: TOLKIEN et TOLKIEN JRR et TOLKIEN J.R.R, etc...
Il faut donc chercher tous les auteurs en double et refaire les fiches produits pour mettre sous un seul nom.
Le truc, c'est que c'est long, chercher les doublons ça prend du temps, donc j'aurais voulu savoir si avec une requête simple on pouvait afficher une table résultats avec que les noms de famille en double.
Voilà, je pensais que ce serait simple, j'ai fait un peu de SQl, mais là je rame carrément.
Merci!
Après plusieurs recherches sur les doublons dans une bdd MYSQL sur le net, je n'ai rien trouvé qui correspondrait à ma recherche.
Voilà, je travaille actuellement dans une librairie, avec une base de données MYSQL.
Alors j'explique: on a une liste d'auteurs, avec nom et prénom (plus d'autres champs), et il existe certains auteurs en double.
Exemple: TOLKIEN et TOLKIEN JRR et TOLKIEN J.R.R, etc...
Il faut donc chercher tous les auteurs en double et refaire les fiches produits pour mettre sous un seul nom.
Le truc, c'est que c'est long, chercher les doublons ça prend du temps, donc j'aurais voulu savoir si avec une requête simple on pouvait afficher une table résultats avec que les noms de famille en double.
Voilà, je pensais que ce serait simple, j'ai fait un peu de SQl, mais là je rame carrément.
Merci!
A voir également:
- Afficher les doublons dans une bdd MYSQL
- Doublons photos - Guide
- Afficher appdata - Guide
- Afficher calendrier outlook dans google agenda - Guide
- Supprimer les doublons excel - Guide
- Word afficher les commentaires dans la marge - Guide
5 réponses
Salut
Ce n'est pas spécifique à MySQL, mais tu peux:
1. isoler les enregistrements correspondants à un auteur avec
select ... from ... where upper(auteur) like '%TOLKIEN%'
2. une fois que tu as trouvé le bon critère isolant les enregistrements à corriger, tu balances un
update ... set auteur = 'J.R.R. TOLKIEN' where upper(auteur) like '%TOLKIEN%'
(ce like '%TOLKIEN%' étant bien évidemment le bon critère trouvé)
Ce n'est pas spécifique à MySQL, mais tu peux:
1. isoler les enregistrements correspondants à un auteur avec
select ... from ... where upper(auteur) like '%TOLKIEN%'
2. une fois que tu as trouvé le bon critère isolant les enregistrements à corriger, tu balances un
update ... set auteur = 'J.R.R. TOLKIEN' where upper(auteur) like '%TOLKIEN%'
(ce like '%TOLKIEN%' étant bien évidemment le bon critère trouvé)
Tout d'abord, merci de me répondre!
Ensuite, le truc c'est que je voudrais une requête qui me donnerait tous les auteurs en double pour après les modifier.
Parceque pour les modifier il faut entrer dans la fiche produit, et changer l'auteur à supprimer par celui qui est bon.
Exemple: j'ai TOLKIEN et TOLKIEN J. R. R., je vais devoir chercher toutes les fiches produits de TOLKIEN pour changer l'auteur, que je remplacerais par TOLKIEN J. R. R., et ensuite supprimer TOLKIEN.
Au lieu de faire défiler la liste d'auteurs, et de chercher les auteurs en double, je voudrais une requête qui me donne tous les noms de famille en double.
Ensuite, le truc c'est que je voudrais une requête qui me donnerait tous les auteurs en double pour après les modifier.
Parceque pour les modifier il faut entrer dans la fiche produit, et changer l'auteur à supprimer par celui qui est bon.
Exemple: j'ai TOLKIEN et TOLKIEN J. R. R., je vais devoir chercher toutes les fiches produits de TOLKIEN pour changer l'auteur, que je remplacerais par TOLKIEN J. R. R., et ensuite supprimer TOLKIEN.
Au lieu de faire défiler la liste d'auteurs, et de chercher les auteurs en double, je voudrais une requête qui me donne tous les noms de famille en double.
salut
tu ne pourras pas lister les lignes de ta database groupées par "similiarité" d'une partie d'une colonne. tu vas devoir te palucher tout ça à la mimine, auteur par auteur avec l'exemple de tolkien ci-dessus
alors, en attendant qu'un grand gourou mysql surgisse du chapeau et te dise 'MySQL sait faire', tu n'as d'autre choix que de te lancer dans ce travail titanesque
tu ne pourras pas lister les lignes de ta database groupées par "similiarité" d'une partie d'une colonne. tu vas devoir te palucher tout ça à la mimine, auteur par auteur avec l'exemple de tolkien ci-dessus
alors, en attendant qu'un grand gourou mysql surgisse du chapeau et te dise 'MySQL sait faire', tu n'as d'autre choix que de te lancer dans ce travail titanesque
j'ai oublié une piste
il existe la fonction SOUNDEX mais je sais pas si elle est dispo dans MySQL
son but est de renvoyer une chaine de caractères dépendant de la prononciation (en anglais) de la chaine. Elle est particulièrement indiquée pour les similarités mais elle a ses limites : le soundex de J.R.R. TOLKIEN ne sera pas le même que celui de TOLKIEN
bon courage
il existe la fonction SOUNDEX mais je sais pas si elle est dispo dans MySQL
son but est de renvoyer une chaine de caractères dépendant de la prononciation (en anglais) de la chaine. Elle est particulièrement indiquée pour les similarités mais elle a ses limites : le soundex de J.R.R. TOLKIEN ne sera pas le même que celui de TOLKIEN
bon courage
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonsoir,
- oui soundex existe en MySQL : voir ici
- tu peux aussi essayer de regrouper par les X premiers caractères du nom et compter : ex avec 6 dans le code qui suit
Dans ton exemple ca te donnera :
3 TOLKIE
...
ce qui signifie qu'il y a dans ta table AUTEURS 3 auteurs dont le nom commence par TOLKIE ...
Mon conseil : commence par un nombre élevé (6 ou 7), puis baisse le progressivement jusqu'à avoir identifié tous les doublons ... (sinon, tu peux aussi écrire un peu de code si tu connais bien le SQL ou un langage de programmation comme PHP ou VB)
Bon courage
- oui soundex existe en MySQL : voir ici
- tu peux aussi essayer de regrouper par les X premiers caractères du nom et compter : ex avec 6 dans le code qui suit
SELECT COUNT(*) AS Nb, LEFT(Nom,6) AS DebutNom FROM AUTEURS GROUP BY DebutNom
Dans ton exemple ca te donnera :
3 TOLKIE
...
ce qui signifie qu'il y a dans ta table AUTEURS 3 auteurs dont le nom commence par TOLKIE ...
Mon conseil : commence par un nombre élevé (6 ou 7), puis baisse le progressivement jusqu'à avoir identifié tous les doublons ... (sinon, tu peux aussi écrire un peu de code si tu connais bien le SQL ou un langage de programmation comme PHP ou VB)
Bon courage