Bienvenue Prénom - Déconnexion

Mot de passe oublié ?Accès membres : merci de vous identifier

BOURSE

RUBRIQUES

 
 PRATIQUE OUTILS 
Faire une recherche partielle dans MySQL
 
Caractères spéciaux et expressions rationnelles permettent d'appliquer des modèles de recherche sur la base. (18/05/2005)
  Forum

Réagissez dans les forums de JDN Développeurs

L'instruction SELECT ne permet évidemment pas que la recherche sur un terme : la plupart des développeurs utilisent largement l'opérateur LIKE (et son contraire NOT LIKE) afin de découvrir les lignes correspondantes à un modèle. Ce modèle peut être construit avec deux caractères : '%' et '_'. Le premier, '%', signifie "n'importe quel nombre de caractères, tandis que le second, '_', signifie "un seul caractère". Il est alors possible de construire des requêtes sur des modèles comme '%lapin', "lapin%" ou encore "%lapin_".

Pourtant, ce faible nombre de modèles peut limiter certaines recherches, aussi MySQL offre la possibilité d'utiliser les expressions rationnelles, via les versions Regexp des opérateurs précités, nommés RLIKE et NOT RLIKE (ou REGEXP et NOT REGEXP).

En travaillant avec les regexp, le développeur abandonne la pauvreté de la syntaxe de LIKE, pour avoir accès à d'autres opérateurs : '^' et '$' (début et fin du texte), '.' et '*' (un seul caractère, le caractère répété 0 ou plusieurs fois), la classe [] et l'opérateur {} (liste de caractère à reconnaître, et répétition du caractère/opérateur précédent). Pour une explication plus complète de ces opérateurs, voir notre article du 04/03/03.

L'équivalence LIKE/RLIKE des modèles précédents serait alors : '.*lapin$', '^lapin.*' et '.*lapin.'.
 
Xavier Borderie, JDN Développeurs
 
 
Accueil | Haut de page
 
 



A VOIR EGALEMENT