1

我使用创建了一个表fts3。我使用以下查询来获得结果

      String query = "SELECT "+ID+" as _id," + 
        NAME +  
        " from " + TABLENAME +
        " where " +  NAME + " MATCH '" + inputKeyword + "';";
        Log.w(TAG, query);

它给出了基于inputKeyword.

但它不适用于多列,

    String query = "SELECT "+ID+" as _id," + 
        NAME +  
        " from " + TABLENAME +
        " where " +  NAME + " MATCH '" + inputKeyword + "' AND "+ EMAILADDRESS + " MATCH '"+emailaddress+"';";

这没有给出任何结果,并且还说您不能MATCH在此查询中使用。怎么做?

4

2 回答 2

1

Your query looks like this:

SELECT ID as _id, Name
FROM TableName
WHERE Name MATCH 'xxx' AND EmailAddress'yyy'

This lacks the MATCH operator for the second column. What you want should look like this:

SELECT ID as _id, Name
FROM TableName
WHERE TableName MATCH 'Name:xxx EmailAddress:yyy'
于 2013-10-21T19:57:55.247 回答
0

显然 sqlite 不支持将 OR 查询与 MATCH 条件组合。工会工作

SELECT  *
FROM    email_fts 
WHERE   "to" MATCH 'a@b.com'

UNION

SELECT  *
FROM    email_fts 
WHERE   "from" MATCH 'c@d.com'
于 2015-03-09T12:16:53.097 回答