当前位置:  开发笔记 > 前端 > 正文

SQLite fts3:在列中搜索字符串

如何解决《SQLitefts3:在列中搜索字符串》经验,为你挑选了1个好方法。

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

我想搜索SELECT*从email_fts WHERE email_fts MATCH'到:"a@b.com"或者来自:"c@d.com"'

提前致谢,

马诺



1> Samuel Neff..:

确保在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


@Manoj,我没有意识到sqlite不支持将`OR`与`MATCH`结合起来.奇怪.我更新了答案,使用了一个工作正常的`UNION`.如果需要与非FTS数据结合使用,可以将联合包装在子查询中并将其连接到其他表上.
推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有