如何在sqlite3中搜索字符串的一部分?
我想为我的sqlite3表格创建一个搜索功能。用户在输入框里输入文字,或者选择下拉菜单,输入三个字母后就开始搜索,并返回在表格中找到的一些推荐结果。这就是我的想法。
目前我在数据库中搜索字符串的一部分时遇到了困难。
"SELECT * FROM album WHERE artist='Audiosl'"
这也返回了一个空的搜索结果,还有
"SELECT * FROM album WHERE artist LIKE 'Audiosl'"
有没有办法做到这一点呢?
3 个回答
0
SQLite 有一个官方的 全文搜索 扩展,这个扩展可以很好地处理很多文本字段,正好符合你的需求。你可以进行字段样式的搜索,比如 artist:*a* album:"greatest hits"
,还有其他你想要的功能,比如 NEAR、AND、OR 和排除搜索等。
我强烈建议你使用这个扩展,而不是自己去构建查询。
3
让我们仔细看看如何使用SQLite中的LIKE
操作符。这样可以把你的语句变成下面这样:
SELECT * FROM album WHERE artist LIKE 'Aud%'"
这里的%
可以匹配零个或多个字符。SQLite文档中还有更多的操作符可以使用。
4
这段代码 "SELECT * FROM album WHERE artist LIKE '%Audiosl%'"
可以完成你的任务。
它会搜索包含类似 T Audiosl
、Audiosl23
、T Audiosl23
这样的字符串。
想了解更多,可以参考这个链接:http://www.sqlite.org/lang_expr.html