仅使用否定项进行 SQLite MATCH

3 sql database sqlite full-text-search

我最近发现这在 SQLite 中是不可能的:

 SELECT * FROM fruit WHERE fruit MATCH '-apple'
Run Code Online (Sandbox Code Playgroud)

然而这是可能的:

 SELECT * FROM fruit WHERE fruit MATCH 'pear -apple'
Run Code Online (Sandbox Code Playgroud)

我使用 FTS3 和 FTS4 进行了尝试,结果相同。为什么 match 需要至少一个非否定项?我该如何解决这个限制?我需要返回所有与“apple”不匹配的水果......就是这样。有任何想法吗?

小智 5

像这样的事情会起作用:

SELECT * FROM fruit 
WHERE fruit.oid NOT IN 
(
    SELECT oid FROM fruit WHERE fruit MATCH 'apple'
)
Run Code Online (Sandbox Code Playgroud)