Lembre-se de que isso não é adequado quando a string que você está procurando é variável ou contém um caractere especial como %.
Sam
10
se "gatos" é um campo de outra tabela, você pode usar '%'||table2.field||'%'como o mesmo critério
Stéphane Ch.
96
Embora LIKEseja adequado para este caso, uma solução de propósito mais geral é usar instr, o que não requer que caracteres na string de pesquisa sejam escapados. Nota: instrestá disponível a partir do Sqlite 3.7.15 .
SELECT*FROMTABLEWHERE instr(column,'cats')>0;
Além disso, mantenha em mente que LIKEé caso- insensível , enquanto que instrdiferencia maiúsculas de minúsculas .
O que significa que sua minSdkVersion deve ser 21 (5.0-Lollipop)
Maksim Turaev
1
@WilliamEntriken Em meu próprio teste, instr(...)é um pouco mais rápido (0,32s vs 0,34s). Você pode usar .timer onno SQLite para medir o tempo de execução.
Respostas:
Usando LIKE:
fonte
%
.'%'||table2.field||'%'
como o mesmo critérioEmbora
LIKE
seja adequado para este caso, uma solução de propósito mais geral é usarinstr
, o que não requer que caracteres na string de pesquisa sejam escapados. Nota:instr
está disponível a partir do Sqlite 3.7.15 .Além disso, mantenha em mente que
LIKE
é caso- insensível , enquanto queinstr
diferencia maiúsculas de minúsculas .fonte
instr(...)
é um pouco mais rápido (0,32s vs 0,34s). Você pode usar.timer on
no SQLite para medir o tempo de execução.