Sqlite FTS,在匹配运算符之间使用 OR

Bag*_*ani 5 sqlite match fts3

当我在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')
    )
Run Code Online (Sandbox Code Playgroud)

-两个表都有fts
-And在两个匹配项之间使用运算符(而不是OR)正常运行。

如何解决此问题或更改查询以查找具有上述条件的行?

小智 1

您不能使用 OR 运算,只需更改您的匹配关键字即可。就像 SELECT * FROM docs WHERE docs MATCH 'sqlite OR database' 一样;

或者也许你可以使用 union

从文档中选择 docid,其中文档匹配“sqlite 和数据库”UNION 从文档中选择 docid,其中文档匹配“库”;