我想创建一个我的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