Подтвердить что ты не робот

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

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

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

Есть ли у меня правильная идея? Это сработало для вас?

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

Спасибо.

4b9b3361

Ответ 1

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

Ответ 2

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

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

Ответ 3

Прошли годы с тех пор, как на вопрос был задан и дан ответ, и в 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, но IMHO мог бы быть быстрее.