Ответ 1
Yepper, используйте Like. Select id from sometable where name like '%omm%'
будет возвращать любую строку, которая имела бы "omm" в любом месте столбца имени.
Каков наиболее эффективный способ поиска подстроки в SQLite?
Я смотрю на оператор LIKE.
Есть ли у меня правильная идея? Это сработало для вас?
http://www.sqlite.org/lang_expr.html
Спасибо.
Yepper, используйте Like. Select id from sometable where name like '%omm%'
будет возвращать любую строку, которая имела бы "omm" в любом месте столбца имени.
Вы можете использовать LIKE
, но он становится очень медленным, если шаблон, который вы ищете, начинается с '%'
- то есть, если подстрока, которую вы ищете, необязательно находится в начале поля.
Если вам нужно выполнить такие поиски, подумайте об использовании FTS3, что делает полнотекстовый поиск значительно более эффективным.
Прошли годы с тех пор, как на вопрос был задан и дан ответ, и в 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 мог бы быть быстрее.