问题描述
从JSONB对象数组中替换整个对象的Postgresql调用是什么:
例如jsonB列数据:
[{a: 1,b: 2,c:3,d: 4,e: 5,f: 6},{a: 2,b: 12,c: 13,d: 14,e: 15,f: 16},{a: 3,b: 22,c: 23,d: 24,e: 25,f: 26}]
我想选择a = 2的值,并将整个对象2对象替换为a == 2对象参数,将列的结果替换为{a:2,b:102,c:103,d:104, e:105,f:106}
[{a: 1,c: 3,b: 102,c: 103,d: 104,e: 105,f: 106},f: 26}]
我以前有一篇文章,希望从数组中删除一个效果很好的对象, What is the PostgreSQL call to remove an whole object from a JSONB array of Objects 但无法弄清楚如何在一次通话中进行删除和替换。请帮忙。
CREATE TABLE tab( ID INT,jsdata jsonb )
INSERT INTO tab VALUES (1,'[{a: 1,f: 26}]'::jsonb)
UPDATE tab t1 SET jsdata = ( SELECT jsonb_agg(elm) FROM tab t2 CROSS JOIN jsonb_array_elements(jsdata) AS elm WHERE (elm->>'a')::int != 2 )
RESULT: 1,[{a: 1,f: 26}]
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)