Index impossible pour une clause LIKE '%ABC%' ?
Bonjour,
Avec firebird 2.5 j'ai une table contenant un champ Texte sur lequel je souhaite faire des recherches.
Pour simplifier :
Code:
1 2 3 4 5 6 7 8
| CREATE TABLE STREETS
(
ID INTEGER NOT NULL,
NAME VARCHAR(70) CHARACTER SET UTF8 NOT NULL COLLATE UNICODE_CI_AI,
CONSTRAINT PK_ID PRIMARY KEY (ID)
);
CREATE INDEX STREET_NAME ON STREETS (NAME); |
Je souhaiterais pouvoir faire une requête comme ceci :
Code:
SELECT * FROM STREETS WHERE NAME LIKE '%quai%';
Malheureusement, (et logiquement) l'index n'est pas utilisé si le wildcard % est utilisé en début de chaîne (dans l'analyseur de plan, j'ai "PLAN (STREETS NATURAL)" et pas "PLAN (STREETS INDEX (STREET_NAME))".
Existerait-il une solution pour accélérer les recherches de type '%abc%' (ici, ils disent qu'il n'y a que des index b-tree dans Firebird) ?
Merci...