SQLite fts3:在列中搜索字符串

SQLite fts3:在列中搜索字符串,sqlite,fts3,Sqlite,Fts3,有没有办法在列中搜索特定字符串 我想像选择*从电子邮件中搜索,其中电子邮件匹配到:a@b.com“或来自:c@d.com“' 提前感谢, Manoj确保在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' UNIO

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

我想像选择*从电子邮件中搜索,其中电子邮件匹配到:a@b.com“或来自:c@d.com“'

提前感谢,


Manoj

确保在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'
编辑:我以前的答案在
WHERE
子句中有一个
。显然,sqlite不支持将
查询与
匹配
条件相结合。上述工会有效

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


找不到相关单据。我得到了如下错误:sqlite>.schema email\u fts使用fts3创建虚拟表[email\u fts]([from]、[subject]、[body]、[to]、[cc]、[filename]sqlite>SELECT*from email\u fts WHERE“to”MATCH“a@b.com'或“来自”比赛b@c.com';SQL错误:无法在请求的上下文sqlite>@Manoj中使用函数匹配,我没有意识到sqlite不支持将
匹配
组合。奇怪。我更新了答案,使用了
联合
,效果很好。如果需要与非FTS数据组合,可以将联合包装在子组中并在其他表中加入该选项。