Bonjour,

J'ai un soucis avec un LIKE. En utilisant EXPLAIN je me suis rendu compte d'un truc.

Prenons une table ayant un champs nommé 'texte' avec un index dessus.

Si je veux par exemple rechercher tous les enregistrements commençant par un "en", je fais:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
SELECT meschamps FROM matable WHERE texte LIKE 'en%';
L'explain me montre que MySQL utilise l'index de texte pour faire la requete.

Maintenant si je veux tous les enregistrements dont 'texte' commence par un '/en' je fais:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
SELECT meschamps FROM matable WHERE texte LIKE '/en%';
Et là le explain me montre que MySQL n'utilise plus l'index!!!!

Or moi j'ai besoin de rechercher des chaines commencant par un "/", donc ça m'arrange pas...

Dans la doc de MySQL je n'ai pas trouvé que le "/" soit un caractère special, je ne comprends pas pourquoi l'index n'est pas utilisé.

Quelqu'un a une idée?

merci.