下面这条语句返回的是 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,它说文档一般不会介绍那么细,不太敢信。
1.
@>是包含关系操作符,不是查询2.你的写法只要遵循jsonb语法,官方文档没有写,放心用就行,但是你要搞清楚,你这个版本的jsonb的支持程度。不放心的话,搞个语句在线上环境测试一下,看下执行计划,你想查询多个键值对,应该是
这个语句是说左边如果是数组要包含右边的所有元素,如果是值要相等