首页 > 解决方案 > 如何在 FTS SQL 数据库中选择只匹配部分查询的条目?

问题描述

CREATE VIRTUAL TABLE TEST USING FTS5(SomeText);

INSERT INTO TEST(SomeText) VALUES 
('Covid 19');

SELECT SomeText 
FROM TEST 
WHERE SomeText MATCH 'sars covid 19'; 

=> 没有结果

我如何确保这也返回带有“Covid 19”的列?是否有考虑到这一点的扩展或函数来保持 sql 命令简单?

小提琴:https ://dbfiddle.uk/?rdbms=sqlite_3.27&fiddle=defbd331c8469e05ea6a107df10738a2

标签: sqlsqlitefull-text-searchmatch

解决方案


我认为在这种情况下使用的语法是“Covid 19 OR sars”。

例如 :

CREATE VIRTUAL TABLE TEST USING FTS5(SomeText);

INSERT INTO TEST(SomeText) VALUES 
('Sars'),
('Covid 19'),
('Covid 19 but also Sars'),
('Some other stuff');

SELECT SomeText 
FROM TEST 
WHERE SomeText MATCH 'Covid 19 OR sars';

返回以下结果:

Sars
Covid 19
Covid 19 but also Sars

您可以在此处查看以下小提琴

另请参阅:https ://www.sqlitetutorial.net/sqlite-full-text-search/here


推荐阅读