SQLite fts3:在列中搜索字符串
有没有办法在列中搜索特定字符串 我想像选择*从电子邮件中搜索,其中电子邮件匹配到:a@b.com“或来自:c@d.com“' 提前感谢,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
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数据组合,可以将联合包装在子组中并在其他表中加入该选项。