仅使用否定项进行 SQLite MATCH
我最近发现这在 SQLite 中是不可能的:
SELECT * FROM fruit WHERE fruit MATCH '-apple'
然而这是可能的:
SELECT * FROM fruit WHERE fruit MATCH 'pear -apple'
我使用 FTS3 和 FTS4 进行了尝试,得到了相同的结果。为什么 match 需要至少一个非否定项?我该如何解决这个限制?我需要返回所有与“苹果”不匹配的水果......就是这样。有什么想法吗?
I recently found that this is impossible in SQLite:
SELECT * FROM fruit WHERE fruit MATCH '-apple'
Yet this is possible:
SELECT * FROM fruit WHERE fruit MATCH 'pear -apple'
I tried this using FTS3 and FTS4 with the same results. Why does match require at least one non-negated term? And how do I work around this limitation? I need to return all fruits that don't match "apple"...that's it. Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
像这样的事情会起作用:
Something like this will work:
为什么不简单地反转搜索?您可以使用 EXCEPT 子句:
但这可能不是很有效。
Why don't you simply invert the search?You could use a EXCEPT clause:
but that might not be very efficient.