下面这条语句返回的是 true:
SELECT
'{"tags": ["ACG", "Trance", "日本"], "artists":["a","b","c"],"year": 2000}'::jsonb
@>
'{"tags": ["ACG", "Trance"], "artists":["a","b"],"year": 2000}'::jsonb;
我没在官方文档里看到类似的用法,不太敢用,我怕是我卡了一个 BUG。我问了 DeepSeek,它说文档一般不会介绍那么细,不太敢信。
下面这条语句返回的是 true:
SELECT
'{"tags": ["ACG", "Trance", "日本"], "artists":["a","b","c"],"year": 2000}'::jsonb
@>
'{"tags": ["ACG", "Trance"], "artists":["a","b"],"year": 2000}'::jsonb;
我没在官方文档里看到类似的用法,不太敢用,我怕是我卡了一个 BUG。我问了 DeepSeek,它说文档一般不会介绍那么细,不太敢信。
2 回答838 阅读✓ 已解决
2 回答1.2k 阅读
3 回答784 阅读
1 回答532 阅读
1 回答482 阅读
1.
@>
是包含关系操作符,不是查询2.你的写法只要遵循jsonb语法,官方文档没有写,放心用就行,但是你要搞清楚,你这个版本的jsonb的支持程度。不放心的话,搞个语句在线上环境测试一下,看下执行计划,你想查询多个键值对,应该是
这个语句是说左边如果是数组要包含右边的所有元素,如果是值要相等