Имейте в виду, что это не подходит, если строка, которую вы ищете, является переменной или содержит специальный символ, например %.
Сэм
10
если «коты» - это поле из другой таблицы, вы можете использовать '%'||table2.field||'%'аналогичные критерии
Стефан Гл.
96
Хотя LIKEэто и подходит для этого случая, можно использовать более универсальное решение instr, которое не требует экранирования символов в строке поиска. Примечание: instrдоступно начиная с Sqlite 3.7.15 .
SELECT*FROMTABLEWHERE instr(column,'cats')>0;
Также имейте в виду, что LIKEрегистр не учитывается , а instrрегистр - чувствителен .
Это означает, что ваша minSdkVersion должна быть 21 (5.0-Lollipop)
Максим Тураев
1
@WilliamEntriken В моем собственном тесте instr(...)он немного быстрее (0,32 с против 0,34 с). Вы можете использовать .timer onв SQLite для измерения времени выполнения.
Ответы:
Использование LIKE:
источник
%
.'%'||table2.field||'%'
аналогичные критерииХотя
LIKE
это и подходит для этого случая, можно использовать более универсальное решениеinstr
, которое не требует экранирования символов в строке поиска. Примечание:instr
доступно начиная с Sqlite 3.7.15 .Также имейте в виду, что
LIKE
регистр не учитывается , аinstr
регистр - чувствителен .источник
instr(...)
он немного быстрее (0,32 с против 0,34 с). Вы можете использовать.timer on
в SQLite для измерения времени выполнения.