psql如何select如果对象数组中的任何属性如果某个值
psql how to select if any properties in array of object if a certain value
我想 select 每一行 args.args_json.actions ==> 任何 id 到 79
{
"args": {
"args_json": {
"actions": [
{
"id": 79
},
{
"id": 47
},
{
"id": 82
}
]
}
}
}
我尝试了 args #> '{args_json,actions,0}' ->> 'id' = '79'
并且它有效但只检查索引 0。
我也想要,但是 returns 如果任何一个 id 为 79,则为真,而不仅仅是索引 0。
args #> '{args_json,actions}' @> '[{"id":79}]' ;
不需要取消引用,你可以简单地使用包含运算符 @>
和更大的 JSON:
WHERE args @> '{ "args_json": { "actions": [ { "id":79 } ] } }'
我想 select 每一行 args.args_json.actions ==> 任何 id 到 79
{
"args": {
"args_json": {
"actions": [
{
"id": 79
},
{
"id": 47
},
{
"id": 82
}
]
}
}
}
我尝试了 args #> '{args_json,actions,0}' ->> 'id' = '79'
并且它有效但只检查索引 0。
我也想要,但是 returns 如果任何一个 id 为 79,则为真,而不仅仅是索引 0。
args #> '{args_json,actions}' @> '[{"id":79}]' ;
不需要取消引用,你可以简单地使用包含运算符 @>
和更大的 JSON:
WHERE args @> '{ "args_json": { "actions": [ { "id":79 } ] } }'