我有一个问题,就是从列字符的开头开始创建用于文本搜索的查询。例如:我有一个表'BOOK',列'TITLE'。 'BOOK'表中有3行,'TITLE'值为:'ANDROID APPLICATION','ANDROID APP DEVELOPMENT'和'ANDROID APPLICATION PROGRAMMING'。
现在当我的输入是'ANDROID APP'时,我需要所有3行匹配。当我输入'ANDROID APPLICATION'时,我需要匹配2行:'ANDROID APPLICATION'和'ANDROID APPLICATION PROGRAMMING'。当我输入'APP'或'APPLICATION'时,我不需要匹配行(因为我们想开始搜索列值的开头字符)。
我已经阅读过SQLite FTS文档,但我不知道如何使用前缀查询,短语查询...以及AND,OR,NOT操作来解决我的问题?任何人都可以给我一个approriate查询语法?
答案 0 :(得分:0)
尝试以下:
String name = your book name which entered by search box;
String sql ="select "+TITLE+" from "+BOOK+" where TITLE like '"+ name +"%'";
答案 1 :(得分:0)
FTS无法从列值的开头进行搜索。 (实际上,它可以,但这是未记录的,并且在Android中未启用。)
要从头开始搜索,您必须使用LIKE 'pattern%'
。
如果您希望这样做有效,则必须将其与普通表和不区分大小写的索引(COLLATE NOCASE)一起使用。