Итак, я понимаю, что предложение, подобное (x GLOB 'abc*')
, может быть заменено на (x >= 'abc' AND x < 'abd')
, но я использую предложение, которое выглядит так: (x GLOB '*abc*')
, и это дорогостоящая операция. Есть ли способ заменить его так же, как первое выражение было заменено?Можно ли заменить это предложение glob в SQLite?
0
A
ответ
1
Нет, нет способа упростить поиск строк в середине столбца, кроме использования полнотекстовых индексов.
+0
FTS не позволяет искать в середине слов. –
Нет, это не может быть упрощено, потому что вам нужно искать везде в строке. – Barmar
@ Бармар Это то, что я подозревал. Я просто чувствовал, что может быть более быстрый, но немного менее точный способ. Спасибо, что подтвердили это. Знаете ли вы что-нибудь быстрее, чем глобус, который делает то же самое? Я предполагаю, что это самый быстрый результат. – Mukhi
См. Расширение полнотекстового поиска SQLite. – Barmar