Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/01/2007, 11h50   #1
Membre expérimenté
 
Étudiant
Inscription : juillet 2004
Messages : 777
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2004
Messages : 777
Points : 527
Points : 527
Par défaut Recherche dans table MYSQL

Bonjour, voila j'ai fait une base de données des codes postaux français, avec le nom de ville correspondant et le numéro INSEE. Mais mes nom de ville composés sont du style machin-truc, et j'ai fait un champ de recherche, et je voudrai que si l'utilisateur rentre machin truc cela marche quand même pour la recherche.
Et je ne voit pas comment faire au niveau ce la requête pour cela.
Merci pour votre aide.
cerede2000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2007, 11h55   #2
Expert Confirmé
 
Homme
Inscription : septembre 2006
Messages : 2 291
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2006
Messages : 2 291
Points : 2 738
Points : 2 738
Citation:
Envoyé par cerede2000
Bonjour, voila j'ai fait une base de données des codes postaux français, avec le nom de ville correspondant et le numéro INSEE. Mais mes nom de ville composés sont du style machin-truc, et j'ai fait un champ de recherche, et je voudrai que si l'utilisateur rentre machin truc cela marche quand même pour la recherche.
Et je ne voit pas comment faire au niveau ce la requête pour cela.
Merci pour votre aide.
utiliser LIKE et le %% dans la clause WHERE du SELECT…
JeitEmgie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2007, 12h05   #3
Membre expérimenté
 
Étudiant
Inscription : juillet 2004
Messages : 777
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2004
Messages : 777
Points : 527
Points : 527
Oui, mais cela sélectionnera toute ligne contenant au moins le truc recherche.
Y a pas un moyen plus fin?

Edit: En plus je vient d'essayer avec ceci, j'ai une ville qui s'apelle "Louvignies Quesnoy" dans ma base elle est ecrite "Louvignies-Quesnoy" et si je fait une recherche LIKE "%Louvignies Quesnoy%", cela ne donne rien
cerede2000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2007, 13h13   #4
Membre Expert
 
Avatar de Adjanakis
 
Inscription : avril 2004
Messages : 734
Détails du profil
Informations personnelles :
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations forums :
Inscription : avril 2004
Messages : 734
Points : 1 281
Points : 1 281
Bonjour,

Si le problème ne porte que sur les traits d'union, il est possible de faire un REPLACE() pour éventuellement changer les '-' en espace(' '). S
__________________
Pensez au tag
Adjanakis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2007, 13h29   #5
Expert Confirmé
 
Homme
Inscription : septembre 2006
Messages : 2 291
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2006
Messages : 2 291
Points : 2 738
Points : 2 738
Citation:
Envoyé par cerede2000
Oui, mais cela sélectionnera toute ligne contenant au moins le truc recherche.
Y a pas un moyen plus fin?

Edit: En plus je vient d'essayer avec ceci, j'ai une ville qui s'apelle "Louvignies Quesnoy" dans ma base elle est ecrite "Louvignies-Quesnoy" et si je fait une recherche LIKE "%Louvignies Quesnoy%", cela ne donne rien
LIKE "%Louvignies%Quesnoy%"

-> remplacer tous les signes de ponctuation et les blancs par % …

des fonctions du genre metaphone, fuzzystringmatch, soundex, levensthein, … vous seraient utiles…

il existe un "mysqllevenshtein" mais pour l'installer vous dever avoir accès à la machine (donc pas un serveur partagé, mais par exemple un serveur dédié…, )

elles existent aussi en PHP mais cela impliquerait de faire la recherche côté client…

ce genre de fonction permet d'implémenter une tolérance aux fautes d'orthographe de l'utilisateur…
JeitEmgie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2007, 13h31   #6
Membre expérimenté
 
Étudiant
Inscription : juillet 2004
Messages : 777
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2004
Messages : 777
Points : 527
Points : 527
Hum la fonction replace a mon avis suffit.
Edit: Quoi que SOUNDEX est une fonction super!!
Merci beaucoup!
cerede2000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h10.


 
 
 
 
Partenaires

Hébergement Web