Page 1 sur 1

recherche avec REGEX

Posté : 23 déc. 2005, 16:51
par JOjo123
Salut a tous, j'ai un petit souci avec mon moteur de recherche.

Je souhaite pouvoir faire une recherche par mots clé dans un champ texte. J'utilise donc les expressions régulières pour trouver le mot dans le champ:

Code : Tout sélectionner

SELECT * FROM matable WHERE monchamp REGEXP '((\ +)|^)MOTCLE((\ +)|$)'
cette requete marche bien mais mon problème est qu'elle est sensible aux accents :(

je voudrai que mon expression régulière traite les "e", "é", "è", "ê" , etc. de la même manière.

une idée?

merci a vous.

(ce message n'étant pas vraiment du PHP ou du SQL, dans le doute je le poste dans les deux forums)

Posté : 24 déc. 2005, 02:28
par @rthur
Bonsoir,

Tu ne pourrais pas utiliser un like dans ta requète SQL?
SELECT * FROM matable WHERE monchamp LIKE '% MOTCLE %' OR monchamp LIKE '% MOTCLE' OR monchamp LIKE 'MOTCLE %' OR monchamp = 'MOTCLE'

Posté : 24 déc. 2005, 12:16
par zeus
modération : le multi-postage est interdit sur PHPFrance

L'autre message est parti à la poubelle

Posté : 30 déc. 2005, 22:45
par alexbad
Tu ne pourrais pas utiliser un like dans ta requète SQL?
Je crois que REGEXP est plus approprié car avec un like, on se retrouve avec parfois ce que l'on ne veut pas => Je cherche la lettre "i", je me retrouve avec tout les résultat contenant un mots contenant un i :shock: mais ça, on pourrait en débattre longtemps, ça dépend de la manière dont les mots-clés sont enregistrés dans sa table, pour mon cas personnel, REGEXP convient mieux.

Pour ton problème d'accent, sous quelle forme les accents sont enregistrés dans la base? en clair? en caractères spéciaux?