par
sadeq » 30 avr. 2007, 12:19
Oui je comprends, à ce moment là, ce n'est plus LIKE mais une expression régulière qu'il te faut car quand tu ne connais pas le critère exact de recherche il te faut pencher vers l'usage des expressions régulières.
En SQL on utilise REGEXP dans le WHERE pour évaluer une expression réguliaire.
Exemple:
Cherche les enregistrements où "champ" contient un numérique (intervalle [0-9]) n'importe où.
Avec la variante
La recherche se limite aux valeurs commençant (^) par un numérique
La variante:
La recherche se limite aux valeurs se terminant ($) par un numérique
Pour les alphabétiques les intervalles sont [a-z] ou [A..Z]
L'assemblage est possible : [0-9a-zA-Z] c'est le tout
Voir le fonctionnement des REGEXP pour plus d'infos.
Oui je comprends, à ce moment là, ce n'est plus LIKE mais une expression régulière qu'il te faut car quand tu ne connais pas le critère exact de recherche il te faut pencher vers l'usage des expressions régulières.
En SQL on utilise REGEXP dans le WHERE pour évaluer une expression réguliaire.
[b]
Exemple:[/b]
[code]SELECT *
FROM ma_table
WHERE champ REGEXP '[0-9]'[/code]
Cherche les enregistrements où "champ" contient un numérique (intervalle [0-9]) n'importe où.
Avec la variante
[code]WHERE champ REGEXP '^[0-9]'[/code]
La recherche se limite aux valeurs commençant (^) par un numérique
La variante:
[code]WHERE champ REGEXP '[0-9]$'[/code]
La recherche se limite aux valeurs se terminant ($) par un numérique
Pour les alphabétiques les intervalles sont [a-z] ou [A..Z]
L'assemblage est possible : [0-9a-zA-Z] c'est le tout
Voir le fonctionnement des REGEXP pour plus d'infos.