2012-01-23 80 views
2

我想創建一個我的sqlite3表的搜索。結合使用文本字段或下拉菜單,應在輸入3個字母后開始搜索,並返回表中找到的一些建議。至少這是這個想法。如何在sqlite3中搜索字符串的一部分?

現在我被困在搜索數據庫中的一部分字符串。

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

確實返回一個空搜索以及

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

有沒有辦法做到這一點?

+0

如果有足夠的內存,然後按['trie'或'suffixtree'可能會更快(HTTP: //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

細看到使用SQLite的LIKE操作。這將打開你的說法成以下:

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

%匹配零次或多個出現。 SQLite文檔中也有更多的運算符。

0

SQLite包含一個正式的full text search擴展,它提供了適用於您的模式所暗示的大量文本字段的功能。你可以做田野風格的搜索(artist:*a* album:"greatest hits") plus all the other stuff you would expect (NEAR, AND, OR, exclusions).

我強烈建議你使用這個擴展,而不是構建自己的查詢

相關問題