在MATERE语句中将MATCH与OR子句组合使用

时间:2015-07-06 12:18:56

标签: android sqlite full-text-search where-clause fts3

我想执行查询,其中WHERE clausule具有以下条件:

  • MATCH表格中的一个FTS3条件 OR
  • MATCH表格中的列上的另一个非FTS条件。

示例

说我有两张桌子

  • books_fts ,这是一个包含内容列的表格,用于全文搜索。
  • books_tags ,这是带有标记的非FTS表格。

我想在其内容中搜索所有包含“Dikjstra”的书籍,或者使用“算法”字词进行标记。所以我运行这个查询:

SELECT * from books_fts               
LEFT OUTER JOIN books_tags ON books_fts.fk_id = books_tags.id
WHERE (books_fts MATCH 'content:%Dijkstra*')
OR (books_tags.tag = 'algorithm')

我认为查询是正确的,如果我使用其中一个OR claus运行它,它就可以了。 但是,当使用两个clausule运行它时,我得到以下错误:

unable to use function MATCH in the requested context

我觉得我无法在MATCH子句中合并MATCH和非WHERE,即使每个子句都适用于不同的表格(一个FTS和另一个非FTS)。 这是真的?我无法找到相关信息。

注意:如果使用AND而不是OR分隔小词,则查询有效。

感谢。

1 个答案:

答案 0 :(得分:0)