SQLiteでサブ文字列を検索する最も効率的な方法は何ですか?
LIKE演算子を見ています。
正しいアイデアはありますか?これはうまく機能しましたか?
http://www.sqlite.org/lang_expr.html
ありがとうございました。
うん、ライクを使う。 Select id from sometable where name like '%omm%'
は、名前列のどこかに 'omm'がある行を返します。
あなたはcanLIKE
を使用できますが、reallyを取得します検索しているパターンが'%'
で始まる場合、つまり、探している部分文字列が必ずしもフィールドの先頭にあるとは限らない場合は低速です。
このような検索を行う必要がある場合は、 FTS の使用を検討してください。これにより、全文検索の効率が大幅に向上します。
質問が回答されてから数年が経過し、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はより高速かもしれません。