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

时间:2012-01-23 04:30:18

标签: python sqlite

我想创建一个sqlite3表的搜索。通过文本字段或下拉菜单的组合,搜索应在输入3个字母后开始,并应返回表中找到的一些建议。这至少就是这个想法。

现在我一直在寻找数据库中字符串的一部分。

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

这确实会返回空搜索以及

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

有办法吗?

3 个答案:

答案 0 :(得分:3)

"SELECT * FROM album WHERE artist LIKE '%Audiosl%'"会完成你的任务。

这会搜索T Audios1Audios123T Audios123等字符串。

请参阅更多:http://www.sqlite.org/lang_expr.html

答案 1 :(得分:1)

仔细研究使用LIKE SQLite运算符。这会将您的陈述变成以下内容:

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

%匹配零次或多次。 SQLite文档中还有更多运算符。

答案 2 :(得分:0)

SQLite包含一个官方full text search扩展,它提供了适合您的架构所暗示的许多文本字段的功能。您可以进行字段样式搜索(artist:*a* album:"greatest hits") plus all the other stuff you would expect (NEAR, AND, OR, exclusions).

我强烈建议您使用此扩展程序,而不是构建自己的查询。