簡體   English   中英

在postgres查詢中使用另一個更新JSON項目

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM