Tenga en cuenta que esto no es adecuado cuando la cadena que está buscando es variable o contiene un carácter especial como %.
Sam
10
si "gatos" es un campo de otra tabla, puede utilizar '%'||table2.field||'%'como criterio similar
Stéphane Cap.
96
Si bien LIKEes adecuado para este caso, se usa una solución de propósito más general instr, que no requiere que se escapen los caracteres en la cadena de búsqueda. Nota: instrestá disponible a partir de Sqlite 3.7.15 .
SELECT*FROMTABLEWHERE instr(column,'cats')>0;
Además, tenga en cuenta que LIKEdistingue entre mayúsculas y minúsculas , mientras que instrdistingue entre mayúsculas y sensible .
Lo que significa que su minSdkVersion debería ser 21 (5.0-Lollipop)
Maksim Turaev
1
@WilliamEntriken En mi propia prueba, instr(...)es un poco más rápido (0.32s vs 0.34s). Puede usar .timer onen SQLite para medir el tiempo de ejecución.
Respuestas:
Usando LIKE:
fuente
%
.'%'||table2.field||'%'
como criterio similarSi bien
LIKE
es adecuado para este caso, se usa una solución de propósito más generalinstr
, que no requiere que se escapen los caracteres en la cadena de búsqueda. Nota:instr
está disponible a partir de Sqlite 3.7.15 .Además, tenga en cuenta que
LIKE
distingue entre mayúsculas y minúsculas , mientras queinstr
distingue entre mayúsculas y sensible .fuente
instr(...)
es un poco más rápido (0.32s vs 0.34s). Puede usar.timer on
en SQLite para medir el tiempo de ejecución.