SQLite FTS 表上的正常 SELECT

Posted

技术标签:

【中文标题】SQLite FTS 表上的正常 SELECT【英文标题】:Normal SELECT on an SQLite FTS Table 【发布时间】:2011-09-11 18:29:05 【问题描述】:

我在执行正常的 SELECT 语句时遇到问题(也就是说,不是他们设计的“搜索”——我没有使用 MATCH)。我想要做的是在表中查询 INTEGER 列的所有行。但是,SELECT 语句始终不返回任何行。我用 SQLite 浏览器检查了数据库,查询应该可以工作。这里是:

这是 MAKE TABLE 语句:

CREATE VIRTUAL TABLE FTS_journal USING fts3(journal_id INTEGER, journal_text_col TEXT)

这是 SELECT:

SELECT journal_id FROM FTS_journal

这与我在虚拟表上运行“正常”查询有关吗?我真的想不出任何其他原因

编辑:我使用的是 android 版本的 SQLite,即 SQLite3。我知道它正确支持 FTS...

如果我能提供的任何进一步的信息对我有帮助,请告诉我,我会发布。

【问题讨论】:

确认实际的 CREATE TABLE 语句完全 与您在上面给出的相匹配。例如。 INTEGER 不是 INT。 【参考方案1】:

你写的应该可以。您是否 100% 肯定您实际上已经在表格中插入了一些东西?您是否运行过插入语句,如果是,您确定它们成功了吗?

我测试了你的语句,运行 create 语句,然后是以下语句:

插入 FTS_journal (journal_id, journal_text_col) 值 (1, 'test');

... 然后您的 select 语句和 sqlite 返回 1 行(journal_id,值 1),就像它应该的那样。

【讨论】:

谢谢! - 问题实际上出在 java 领域,因为我在光标上犯了一个愚蠢的错误 你能解释一下是什么问题吗?

以上是关于SQLite FTS 表上的正常 SELECT的主要内容,如果未能解决你的问题,请参考以下文章

SQLite、FTS、MATCH 和分隔列中的文本

Sqlite FTS5 标点符号在选择查询中不起作用

需要调整我的 FTS4 SQLite 查询

如何在 SQLite 中使用 FTS 和 Monotouch for iOS

SQLite FTS3 - 对多个表进行全文搜索

连接表上的 ORDER BY