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:
L'explain me montre que MySQL utilise l'index de texte pour faire la requete.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT meschamps FROM matable WHERE texte LIKE 'en%';
Maintenant si je veux tous les enregistrements dont 'texte' commence par un '/en' je fais:
Et là le explain me montre que MySQL n'utilise plus l'index!!!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT meschamps FROM matable WHERE texte LIKE '/en%';
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.
Partager