2012-01-23 12 views
2

私のsqlite3テーブルのいずれかの検索を作成したいと思います。テキストフィールドまたはプルダウンの組み合わせでは、3文字が入力された後に検索が開始され、テーブル内で見つかった推奨事項が返されます。それは少なくとも考えです。sqlite3で文字列の一部を検索するにはどうすればよいですか?

今のところ、私はデータベースの文字列の一部を探していません。空の検索を返さないだけでなく

"SELECT * FROM album WHERE artist LIKE 'Audiosl'" 

としてそれを行う方法はあり

"SELECT * FROM album WHERE artist='Audiosl'" 

+0

を十分なメモリが、その後がある場合(HTTP [ 'trie'または' suffixtree'は速いかもしれません]: //stackoverflow.com/a/5479374/4279)、オートコンプリートの実装について説明します。 – jfs

答えて

3

"SELECT * FROM album WHERE artist LIKE '%Audiosl%'"あなたの仕事はありますか?

これは、より多くのために参照してくださいなどT Audios1Audios123T Audios123

のような文字列を検索します。http://www.sqlite.org/lang_expr.html

1

LIKE SQLiteの演算子を使用してに詳しく見てみましょう。

SELECT * FROM album WHERE artist LIKE 'Aud%'" 

0回以上の繰り返しに%マッチは:これは、次のようにあなたの文を向けるだろう。 SQLiteのドキュメントにはさらに多くの演算子があります。

0

SQLiteには、スキーマが示すように多くのテキストフィールドに適した機能を提供する公式full text search拡張が含まれています。 。あなたが、私は強くあなたが独自のクエリを構築するのではなく、この拡張機能を使用することをお勧め(artist:*a* album:"greatest hits") plus all the other stuff you would expect (NEAR, AND, OR, exclusions).

をフィールドスタイルの検索を行うことができます

関連する問題