如何使用“-*”在 sqlite fts3 table 中查询?
How to query in sqlite fts3 table using "-*"?
我有一个名为 fts3 table 的选项卡,里面有很多条目。当我 运行 这个查询时:
SELECT * FROM tab WHERE key MATCH 'an*';
我得到这样的结果:
an
anul
an-
但是当我 运行 这个查询时:
SELECT * FROM tab WHERE key MATCH 'an-*';
它仍然会导致 "an" 条目。结果会是这样的:
an
an-
如何编写查询才能使结果不是 "an",而只是那些实际包含字符“-”的条目?
根据默认的tokenizer规则,-
分隔单词,否则忽略。
您必须先搜索单词 an
,然后检查连字符:
SELECT *
FROM tab
WHERE key MATCH 'an'
AND key LIKE 'an-%';
我有一个名为 fts3 table 的选项卡,里面有很多条目。当我 运行 这个查询时:
SELECT * FROM tab WHERE key MATCH 'an*';
我得到这样的结果:
an
anul
an-
但是当我 运行 这个查询时:
SELECT * FROM tab WHERE key MATCH 'an-*';
它仍然会导致 "an" 条目。结果会是这样的:
an
an-
如何编写查询才能使结果不是 "an",而只是那些实际包含字符“-”的条目?
根据默认的tokenizer规则,-
分隔单词,否则忽略。
您必须先搜索单词 an
,然后检查连字符:
SELECT *
FROM tab
WHERE key MATCH 'an'
AND key LIKE 'an-%';