web-dev-qa-db-ja.com

SQLiteで部分文字列を検索する方法は?

SQLiteでサブ文字列を検索する最も効率的な方法は何ですか?

LIKE演算子を見ています。

正しいアイデアはありますか?これはうまく機能しましたか?

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

ありがとうございました。

34
T.T.T.

うん、ライクを使う。 Select id from sometable where name like '%omm%'は、名前列のどこかに 'omm'がある行を返します。

43
GrandmasterB

あなたはcanLIKEを使用できますが、reallyを取得します検索しているパターンが'%'で始まる場合、つまり、探している部分文字列が必ずしもフィールドの先頭にあるとは限らない場合は低速です。

このような検索を行う必要がある場合は、 FTS ​​の使用を検討してください。これにより、全文検索の効率が大幅に向上します。

13
Jerry Coffin

質問が回答されてから数年が経過し、2012年にSQLiteバージョン3.7.15で関数instr( string, substring)が導入されました-文字列内の部分文字列の場所、見つからない場合は0を返します。 ( https://www.techonthenet.com/sqlite/functions/instr.php

sqlite> SELECT instr( 'TechOnTheNet.com'、 'T');
結果:1

私はLIKEに対してベンチマークを行っていませんが、IMHOはより高速かもしれません。

3