Как искать подстроку в SQLite? - PullRequest
       0

Как искать подстроку в SQLite?

33 голосов
/ 09 сентября 2010

Какой самый эффективный способ поиска подстроки в SQLite?

Я смотрю на оператор LIKE.

У меня есть правильная идея?Это хорошо сработало для вас?

http://www.sqlite.org/lang_expr.html

Спасибо.

Ответы [ 3 ]

41 голосов
/ 09 сентября 2010

Yepper, используйте лайк. Select id from sometable where name like '%omm%' вернет любую строку, в которой есть 'omm' в любом месте столбца имени.

12 голосов
/ 09 сентября 2010

Вы можете использовать LIKE, но оно будет действительно медленным, если искомый паттерн начинается с '%' - т.е.искать не обязательно в начале поля.

Если вам нужно выполнить такой поиск, рассмотрите возможность использования FTS3 , что делает полнотекстовый поиск значительно более эффективным.

1 голос
/ 06 января 2019

Прошли годы с тех пор, как на вопрос был задан и дан ответ, и в 2012 году в SQLite версии 3.7.15 была введена функция instr( string, substring) - возвращает местоположение подстроки в строке, 0, если не найдено.(https://www.techonthenet.com/sqlite/functions/instr.php)

sqlite> SELECT instr ('TechOnTheNet.com', 'T');
Результат: 1

У меня нетсравнивается с LIKE, но ИМХО может быть быстрее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...