Ниже приведен пример данных, которые можно получить при поиске подстроки «amadeus»:
db=# SELECT entidade FROM gma WHERE entidade ILIKE '%amadeus%';
entidade
---------------------------------
Hairdresser Amadeus
Snack-Bar Amadeus
Restaurant Amadeus
Restaurant Amadeus
Restaurant Amadeus
Amadeus - Musical Instruments
(6 rows)
Однако я хочу иметь возможность заменить ILIKE
на LIKE
. Поэтому я попытался индексировать entidade
только строчными буквами:
db=# CREATE INDEX idx_gma_entidade ON gma USING btree
db-# ( lower(entidade) );
CREATE INDEX
К настоящему времени я ожидал получить доступ к точно таким же данным, используя LIKE
:
db=# SELECT entidade FROM gma WHERE entidade LIKE '%amadeus%';
entidade
----------
(0 rows)
Но, как видите, результат не тот, который я ожидал ...
Может ли кто-нибудь объяснить, почему? И, если возможно, как я могу достичь ожидаемого поведения?