2012-01-23 45 views
2

我想创建一个我的sqlite3表的搜索。结合使用文本字段或下拉菜单,应在输入3个字母后开始搜索,并返回表中找到的一些建议。至少这是这个想法。如何在sqlite3中搜索字符串的一部分?

现在我被困在搜索数据库中的一部分字符串。

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

确实返回一个空搜索以及

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

有没有办法做到这一点?

+0

如果有足够的内存,然后按['trie'或'suffixtree'可能会更快(HTTP: //stackoverflow.com/a/5479374/4279)来实现自动完成。 – jfs

回答

3

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

该搜索字符串像T Audios1Audios123T Audios123

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

1

细看到使用SQLite的LIKE操作。这将打开你的说法成以下:

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

%匹配零次或多个出现。 SQLite文档中也有更多的运算符。

0

SQLite包含一个正式的full text search扩展,它提供了适用于您的模式所暗示的大量文本字段的功能。你可以做田野风格的搜索(artist:*a* album:"greatest hits") plus all the other stuff you would expect (NEAR, AND, OR, exclusions).

我强烈建议你使用这个扩展,而不是构建自己的查询

相关问题