我想为我的一个sqlite3表创建搜索。使用文本字段或下拉组合,搜索应在输入3个字母后开始,并应返回在表中找到的一些建议。至少是这样的。现在我只能在数据库中搜索字符串的一部分。
"SELECT * FROM album WHERE artist='Audiosl'"
返回空搜索以及
"SELECT * FROM album WHERE artist LIKE 'Audiosl'"
有办法做到吗?
6ojccjat1#
"SELECT * FROM album WHERE artist LIKE '%Audiosl%'"将完成您的任务。这将搜索像T Audiosl、Audiosl23、T Audiosl23等字符串。更多信息请参考:http://www.sqlite.org/lang_expr.html
"SELECT * FROM album WHERE artist LIKE '%Audiosl%'"
T Audiosl
Audiosl23
T Audiosl23
v440hwme2#
仔细看看如何使用LIKE SQLite运算符。这将使您的声明变为以下内容:
LIKE
SELECT * FROM album WHERE artist LIKE 'Aud%'"
%匹配零个或多个字符。SQLite文档中还有更多的运算符。
%
qhhrdooz3#
SQLite包括一个官方的full text search扩展,它提供了适合大量文本字段的功能,正如你的模式所暗示的那样。您可以执行字段样式搜索(artist:*a* album:"greatest hits") plus all the other stuff you would expect (NEAR, AND, OR, exclusions).我强烈建议您使用此扩展,而不是构建自己的查询。
artist:*a* album:"greatest hits") plus all the other stuff you would expect (NEAR, AND, OR, exclusions).
3条答案
按热度按时间6ojccjat1#
"SELECT * FROM album WHERE artist LIKE '%Audiosl%'"
将完成您的任务。这将搜索像
T Audiosl
、Audiosl23
、T Audiosl23
等字符串。更多信息请参考:http://www.sqlite.org/lang_expr.html
v440hwme2#
仔细看看如何使用
LIKE
SQLite运算符。这将使您的声明变为以下内容:%
匹配零个或多个字符。SQLite文档中还有更多的运算符。qhhrdooz3#
SQLite包括一个官方的full text search扩展,它提供了适合大量文本字段的功能,正如你的模式所暗示的那样。您可以执行字段样式搜索(
artist:*a* album:"greatest hits") plus all the other stuff you would expect (NEAR, AND, OR, exclusions).
我强烈建议您使用此扩展,而不是构建自己的查询。