簡體   English   中英

在 postgres 中更新 jsonb 對象

[英]Update jsonb object in postgres

我的專欄之一是 jsonb 並且具有格式價值。 單行列的值如下。

{
    "835": {
        "cost": 0, 
        "name": "FACEBOOK_FB1_6JAN2020", 
        "email": "test.user@silverpush.co", 
        "views": 0, 
        "clicks": 0, 
        "impressions": 0, 
        "campaign_state": "paused", 
        "processed":"in_progress", 
        "modes":["obj1","obj2"]
    }, 
    "876": {
        "cost": 0, 
        "name": "MARVEL_BLACK_WIDOW_4DEC2019", 
        "email": "test.user@silverpush.co", 
        "views": 0, 
        "clicks": 0, 
        "impressions": 0, 
        "campaign_state": "paused", 
        "processed":"in_progress", 
        "modes":["obj1","obj2"]
    }
}

我想更新campaign_info(列名)列的內部鍵“已處理”和“模型”的campaign_id 是“876”。

我試過這個查詢:

update safe_vid_info 
set campaign_info -> '835' --> 'processed'='completed' 
where cid = 'kiywgh'; 

但它沒有用。

任何幫助表示贊賞。 謝謝。

這是你想要的嗎?

jsonb_set(campaign_info, '{876,processed}', '"completed"')

這將使用值'completed'更新路徑"876" > "processed"的值。

在您的更新查詢中:

update safe_vid_info 
set campaign_info = jsonb_set(campaign_info, '{876,processed}', '"completed"')
where cid = 'kiywgh'; 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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