当我在 sqlite 引擎(android或sqlitebrowser)中执行以下查询时,它会抛出一个显示unable to use function MATCH in the requested context
的异常。
select
a.Body1,
b.Body2
from
tbl1_fts as a,
tbl2_fts as b
where
a.ID = b.ParentID and
(
a.Body1 match('value') or
b.Body2 match('value')
)
- 两个表都有 fts
- 在两个匹配(而不是And
)之间使用OR
运算符正常运行。
如何解决此问题或更改查询以查找具有上述条件的行?
答案 0 :(得分:1)
作为函数的MATCH将有两个参数:
... WHERE match('value', SomeColumn) ...
然而,使用MATCH的常用方法是作为运算符:
... WHERE SomeColumn MATCH 'value' ...
答案 1 :(得分:1)
您无法使用OR操作,只需更改匹配关键字即可。 喜欢 SELECT * FROM docs WHERE docs MATCH'sqlite OR database';
或者你可以使用联盟
SELECT docid FROM docs WHERE docs MATCH'sqlite AND database' 联盟 SELECT docid FROM docs WHERE docs MATCH'library';
答案 2 :(得分:0)
MATCH
必须不带括号。
与FTS一起使用时,AND
和OR
运算符必须使用大写字母。