我有一个类似于以下所示的表格:
CREATE TABLE jsontesting (id int, jsondata jsonb)
INSERT INTO jsontesting VALUES( 1,'[
{
"value":1,
"content":{
"en-US":"A. This is response A",
"es-MX":"A. Esta es la respuesta A"
}
},
{
"value":2,
"content":{
"en-US":"A. This is response B",
"es-MX":"Esta es la respuesta B"
}
}
]'),
(2, '[
{
"value":1,
"content":{
"en-US":"A. This is response C",
"es-MX":"A. Esta es la respuesta C"
}
},
{
"value":2,
"content":{
"en-US":"A. This is response D",
"es-MX":"Esta es la respuesta D"
}
}
]')
我想根据值属性更新此表:
UPDATE jsontesting
SET jsondata = Jsonb_set(jsondata, '{0,"content","en-US"}', value_r)
FROM (SELECT 1 AS id,
1 AS key_response,
'This is new response Z' AS value_r) z
WHERE Jsonb_array_elements_text(jsondata) ->> 'value' = z.keys_response
AND id = z.id;
有错误: [代码:,SQL状态:0A000]错误:在WHERE中不允许使用set-turning函数 位置:181
有什么方法可以根据此json中的属性更新postgresql jsonb数组吗?