web-dev-qa-db-ger.com

Wie suche ich in SQLite nach einem Teilstring?

Was ist der effizienteste Weg, um eine Unterzeichenfolge in SQLite zu suchen?

Ich schaue auf den LIKE-Operator.

Habe ich die richtige Idee? Hat das für Sie gut funktioniert?

http://www.sqlite.org/lang_expr.html

Danke dir.

32
T.T.T.

Yepper, bitte Like. Select id from sometable where name like '%omm%' würde jede Zeile mit "omm" irgendwo in der Namensspalte zurückgeben.

40
GrandmasterB

Sie can verwenden LIKE, aber es wird wirklich langsam, wenn das gesuchte Muster mit '%' beginnt - dh, wenn der von Ihnen gesuchte Teilstring nicht unbedingt der Fall ist der Anfang des Feldes.

Wenn Sie solche Suchen durchführen möchten, sollten Sie FTS3 verwenden, wodurch die Volltextsuche erheblich effizienter wird.

12
Jerry Coffin

Es sind Jahre vergangen, seit die Frage gestellt und beantwortet wurde, und 2012 hat SQLite Version 3.7.15 eine Funktion instr( string, substring) eingeführt - gibt die Position eines Teilstrings in einem String zurück, 0, falls nicht gefunden. ( https://www.techonthenet.com/sqlite/functions/instr.php

sqlite> SELECT instr ('TechOnTheNet.com', 'T');
Ergebnis: 1

Ich habe nicht mit LIKE verglichen, aber IMHO könnte schneller sein.

0