我有一张这样的table:
id | status | message 1 | 200 | Some long text 2 | 400 | Other text
有时需要根据id查找行,有时需要根据状态(包括范围查询)查找行,有时需要根据消息中包含的一些单词进行过滤。有时,我需要根据所有列上的混合条件进行筛选。问题是,我有两个选择:
看来我不能两者兼得。我是不是遗漏了什么?在这种情况下我应该怎么做?
omhiaaxx1#
不过,你可以两者兼得。将所需的索引添加到表中。然后创建一个外部内容FTS5表,将其用作后备存储。
CREATE TABLE my_table(id INTEGER PRIMARY KEY, status INTEGER, message TEXT); CREATE INDEX my_table_status_idx ON my_table(status); CREATE VIRTUAL TABLE my_table_fts USING fts5(message, content=my_table, content_rowid=id);
然后在从my_table插入或删除行时适当地更新FTS表。文档给出了自动执行此部分的示例触发器。
my_table
1条答案
按热度按时间omhiaaxx1#
不过,你可以两者兼得。
将所需的索引添加到表中。然后创建一个外部内容FTS5表,将其用作后备存储。
然后在从
my_table
插入或删除行时适当地更新FTS表。文档给出了自动执行此部分的示例触发器。