[英]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.