|
| |
| 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.'.
|
|
|
 |