SQlite全文搜索MATCH miltiple列与OR和AND

时间:2017-05-06 14:06:05

标签: sqlite full-text-search fts4

我正在学习如何在SQlite中使用FTS4并尝试翻译这样的内容:

SELECT * FROM table 
WHERE (postal_code LIKE q1 OR place_name LIKE q1) AND (address LIKE q2)

与普通表完美配合,类似于:

SELECT * FROM table
WHERE table MATCH '(postal_code: q1 OR place_name: q1) AND (address: q2)'

不能使用转换为VIRTUAL的同一个表。使用fts4 ...

使用“is working搜索特定列中的匹配项,但如何将其与OR和AND结合使用?

背景 - 我尝试使用灵活的查询,其中q1可以是两者之一:邮政编码或地名,q2必须是地址。

修改

这是我到目前为止(部分)工作的原因

SELECT * FROM table WHERE table MATCH ('postal_code:q1 OR place_name:q1')
INTERSECT
SELECT * FROM table WHERE table MATCH ('address:q2');

(建立在@CL的this帖子上)

这里的第一个问题是带空格的单词 - 如果我搜索类似

的内容
...MATCH ('postal_code:"new haven*" OR place_name:"new_haven*"')

然后我有“畸形的MATCH表达” 第二个问题是我有空查询,比如

...MATCH ('*')

然后我什么都没得到

0 个答案:

没有答案