我有一个带有 jsonb
foo
的表,其嵌套结构如下
foo: {"bar":[{"baz":["special string"]}]}
我想在psql中查询所有记录,其
foo.bar
可以包含一个对象,该对象的数组值在baz
包含"special string"
。
我得到的最远的信息如下,但它并不像我需要的那样全面:
SELECT *
FROM table
WHERE foo->'bar'->0->'baz' = '["special string"]';
谢谢你。
您可以使用
@>
“包含结构”运算符
SELECT *
FROM table
WHERE foo @> '{"bar": [{"baz": ["special string"]}]}';
或带有
@?
运算符的 jsonpath:
SELECT *
FROM table
WHERE foo @? 'strict $.bar[*].baz[*] = "special string"';