Gardez à l'esprit que cela ne convient pas lorsque la chaîne que vous recherchez est variable ou contient un caractère spécial tel que %.
Sam
10
si "chats" est un champ d'une autre table, vous pouvez utiliser '%'||table2.field||'%'comme critère similaire
Stéphane Ch.
96
Bien que cela LIKEconvienne à ce cas, une solution plus générale consiste à utiliser instr, qui ne nécessite pas d'échapper les caractères de la chaîne de recherche. Remarque: instrest disponible à partir de Sqlite 3.7.15 .
SELECT*FROMTABLEWHERE instr(column,'cats')>0;
De plus, gardez à l' esprit que LIKEest la casse insensible , alors instrest la casse sensible .
Ce qui signifie que votre minSdkVersion devrait être 21 (5.0-Lollipop)
Maksim Turaev
1
@WilliamEntriken Dans mon propre test, instr(...)c'est un peu plus rapide (0.32s vs 0.34s). Vous pouvez utiliser .timer ondans SQLite pour mesurer le temps d'exécution.
Réponses:
En utilisant LIKE:
la source
%
.'%'||table2.field||'%'
comme critère similaireBien que cela
LIKE
convienne à ce cas, une solution plus générale consiste à utiliserinstr
, qui ne nécessite pas d'échapper les caractères de la chaîne de recherche. Remarque:instr
est disponible à partir de Sqlite 3.7.15 .De plus, gardez à l' esprit que
LIKE
est la casse insensible , alorsinstr
est la casse sensible .la source
instr(...)
c'est un peu plus rapide (0.32s vs 0.34s). Vous pouvez utiliser.timer on
dans SQLite pour mesurer le temps d'exécution.