我想創建一個我的sqlite3表的搜索。結合使用文本字段或下拉菜單,應在輸入3個字母后開始搜索,並返回表中找到的一些建議。至少這是這個想法。如何在sqlite3中搜索字符串的一部分?
現在我被困在搜索數據庫中的一部分字符串。
"SELECT * FROM album WHERE artist='Audiosl'"
確實返回一個空搜索以及
"SELECT * FROM album WHERE artist LIKE 'Audiosl'"
有沒有辦法做到這一點?
我想創建一個我的sqlite3表的搜索。結合使用文本字段或下拉菜單,應在輸入3個字母后開始搜索,並返回表中找到的一些建議。至少這是這個想法。如何在sqlite3中搜索字符串的一部分?
現在我被困在搜索數據庫中的一部分字符串。
"SELECT * FROM album WHERE artist='Audiosl'"
確實返回一個空搜索以及
"SELECT * FROM album WHERE artist LIKE 'Audiosl'"
有沒有辦法做到這一點?
"SELECT * FROM album WHERE artist LIKE '%Audiosl%'"
會做你的任務。
該搜索字符串像T Audios1
,Audios123
,T Audios123
等
細看到使用SQLite的LIKE
操作。這將打開你的說法成以下:
SELECT * FROM album WHERE artist LIKE 'Aud%'"
的%
匹配零次或多個出現。 SQLite文檔中也有更多的運算符。
SQLite包含一個正式的full text search擴展,它提供了適用於您的模式所暗示的大量文本字段的功能。你可以做田野風格的搜索(artist:*a* album:"greatest hits") plus all the other stuff you would expect (NEAR, AND, OR, exclusions).
我強烈建議你使用這個擴展,而不是構建自己的查詢
如果有足夠的內存,然後按['trie'或'suffixtree'可能會更快(HTTP: //stackoverflow.com/a/5479374/4279)來實現自動完成。 – jfs