如何使用嵌套数组来 PSQL 查询 jsonb 列以包含字符串

问题描述 投票:0回答:1

我有一个带有 jsonb

foo
的表,其嵌套结构如下

foo: {"bar":[{"baz":["special string"]}]}

我想在psql中查询所有记录,其

foo.bar
可以包含一个对象,该对象的数组值在
baz
包含
"special string"

我得到的最远的信息如下,但它并不像我需要的那样全面:

SELECT * 
FROM table
WHERE foo->'bar'->0->'baz' = '["special string"]';

谢谢你。

postgresql psql
1个回答
0
投票

您可以使用

@>
“包含结构”运算符

SELECT * 
FROM table
WHERE foo @> '{"bar": [{"baz": ["special string"]}]}';

或带有

@?
运算符的 jsonpath:

SELECT * 
FROM table
WHERE foo @? 'strict $.bar[*].baz[*] = "special string"';
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.