我对sqlite上的FTS有疑问。
创建表 :
CREATE VIRTUAL TABLE mail USING fts3(subject, body);
插入演示数据
INSERT INTO mail(docid, subject, body)
VALUES(1, 'software feedback' 'found it too slow');
INSERT INTO mail(docid, subject, body)
VALUES(2, 'software feedback', 'no feedback');
INSERT INTO mail(docid, subject, body)
VALUES(3, 'slow lunch order', 'was a software problem');
搜索查询代码
SELECT *
FROM mail
WHERE subject MATCH 'software*'; ==> Selects rows 1 and 2
SELECT * FROM mail WHERE body MATCH 'feedback'; ==> Selects row 2
SELECT * FROM mail WHERE mail MATCH 'software*'; ==> Selects rows 1, 2 and 3
SELECT * FROM mail WHERE mail MATCH 'slow'; ==> Selects rows 1 and 3
但是,当我想搜索单词中的文本时。 例如:我想搜索任何包含字符"o"的单词:
前任:
SELECT *
FROM mail
WHERE mail MATCH 'o';
我没有得到任何结果...
谁能帮我?
您是否考虑过使用 LIKE
运算符? 如果您想要mail
表中mail
字段中包含一个或多个o
字母的任何记录,您可以尝试以下操作:
SELECT * FROM mail WHERE mail LIKE '%o%';