[英]Update a json item with another in postgres query
我正在使用最新的postgres 9.3,该版本对json具有很好的支持,并且还查询json字段内的特定键。 但是我在更新json字段时遇到问题。
基本上,我的json列是一个包含某些字段频率的字典,由于这些字段是动态的,因此我将它们放在json结构中。 现在,我在更新查询中遇到了麻烦,我只想在其中添加该json字典的相应字段的频率。
因此,如果我有这样的事情-{“ a”:10,“ b”:2},并且在更新传入项时是{“ a”:2,“ c”:3},则我的新行应包含{ “ a”:12,“ b”:2,“ c”:3}
感谢您的帮助。
您可以在PostgreSQL中执行以下操作:
update Test1 as t set
data = (
select
('{' || string_agg(a.data, ',') || '}')::json
from (
select '"' || a.key || '" :' || sum(a.value::int)::text as data
from (
select * from json_each_text(t.data)
union all
select * from json_each_text('{"a":2,"c":3}'::json) -- incoming
) as a
group by a.key
) as a
)
但是可能更简单的方法是编写Python(或其他PL)函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.