4

有没有办法在列中搜索特定字符串?

我想搜索 SELECT * from email_fts WHERE email_fts MATCH 'to:"a@b.com" OR from:"c@d.com"'

提前致谢,

马诺伊

4

1 回答 1

6

确保在 FTS 索引中创建正确的 FTS 列:

CREATE VIRTUAL TABLE email_fts USING fts3(subject, body, "to", "from");

然后您可以搜索各个 FTS 列:

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

UNION

SELECT  rowid 
FROM    email_fts 
WHERE   "from" MATCH 'c@d.com'

编辑:我之前的回答ORWHERE子句中有一个。显然 sqlite 不支持将OR查询与MATCH条件组合。上述工会有效。

FTS 文档在这里,这是文档中使用的示例之一。

http://sqlite.org/fts3.html

于 2010-04-12T17:29:00.397 回答