我有一个名为tab的fts3表,其中有很多条目。当我运行此查询时:
SELECT * FROM tab WHERE key MATCH 'an*';
我得到的结果如下:
an
anul
an-
但是当我运行这个查询时:
SELECT * FROM tab WHERE key MATCH 'an-*';
它仍然会产生“一个”条目。结果如下:
an
an-
如何编写查询以使结果不是“an”,而只是那些实际包含字符“ - ”的条目?
答案 0 :(得分:2)
根据默认的tokenizer规则,-
会分隔字词,否则会被忽略。
您必须首先搜索单词an
,然后检查连字符:
SELECT *
FROM tab
WHERE key MATCH 'an'
AND key LIKE 'an-%';