我在SQLite中使用FTS,我有数据:
ABC
高清
去 去 JDK
sqlite的
放手 继续 去 不去了
我使用查询:select * from table where columns MATCH 'go*'
。结果:
转到
去 放手 继续 去 不去了
但我想要结果go to, go on
,如何查询?
答案 0 :(得分:2)
正如documentation所述,go*
是一个前缀搜索,可以找到以go
开头的任何字词。
您想要搜索两个单词,因此理论上,您必须进行短语搜索。
但是,"go *"
不起作用,因为前缀搜索需要实际的前缀。
您最好的选择是搜索单词go
,并在您的代码中过滤掉仅在结尾处发生go
的任何返回记录。
答案 1 :(得分:1)
使用'^ go'也可能会有所帮助,这只会给你开始的命令(从sqlite版本3.7.9支持)
答案 2 :(得分:1)
select * from table where columns MATCH 'go*'
匹配包含 包含任何单个字的所有词组 以 开头
转到转到
转到转到
这里我们去
...
select * from table where columns MATCH 'go'
匹配包含 包含任何单个字的所有词组 相等 go < / p>
转到转到
这里我们去
...
select * from table where columns MATCH '"^go"'
匹配所有词组 以 单词开头 相等 go
转到转到
...
有人使用&#39; ^ go&#39; ,但它不起作用,魔力是&#39; &#34; ^走&#34; &#39; 强>
答案 3 :(得分:0)
select * from table where columns MATCH '^go *'
这将给出结果: 去,继续
select * from table where columns MATCH '^go*'
这将给出结果: 去,继续,去