Comment rechercher une sous-chaîne dans SQLite?
Quel est le moyen le plus efficace pour rechercher une sous-chaîne dans SQLite?
Je suis à la recherche à l'opérateur LIKE.
Puis-je avoir la bonne idée? A cela a bien fonctionné pour vous?
http://www.sqlite.org/lang_expr.html
Merci.
- Pourquoi est-ce taggés avec C?
- À l'aide de l'API SQLite en C.
Vous devez vous connecter pour publier un commentaire.
Yepper, utilisez le souhaitez.
Select id from sometable where name like '%omm%'
serait de retour tout ligne 'omm' n'importe où dans la colonne nom.Vous peut utilisation
LIKE
, mais il devient vraiment lente si le motif que vous êtes à la recherche pour le départ avec'%'
-- c'est à dire, si la sous-chaîne que vous recherchez n'est pas nécessairement au début du champ.Si vous avez besoin de faire de telles recherches, pensez à utiliser FTS3, ce qui rend la recherche de texte intégral considérablement plus efficace.
If you need to do such searches
voulez-vous dire pattern commence au début du champ ou de ne pas commencer par le commencement? Parce que fts dans SQLite ne supporte pas de suffixe correspond.Ans ont passé depuis que la question a été posée et répondue, et en 2012, SQLite version 3.7.15 introduit une fonction
instr( string, substring)
- retourne l'emplacement d'une sous-chaîne dans une chaîne de caractères, 0 si non trouvé. (https://www.techonthenet.com/sqlite/functions/instr.php)Je n'ai pas comparés à ceux des
LIKE
, mais à mon humble avis pourrait être plus rapide.