如何在sqlite3中搜索字符串的一部分?

3 投票
3 回答
5037 浏览
提问于 2025-04-17 10:52

我想为我的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 AudioslAudiosl23T Audiosl23 这样的字符串。

想了解更多,可以参考这个链接:http://www.sqlite.org/lang_expr.html

撰写回答