简体   繁体   English

如何更新 postgresql db 中嵌套 jsonb 属性的值

[英]How to update value of nested jsonb attribute in postgresql db

{
"personalDetails": {
    "First Name": "Paul", 
    "Last Name": "Jamessen", 
    "Work Class": "A+", 
    "Working Unit": "Management", 
    "email": "demo@demo.com"
    }
}

I want to update the records whose Working Unit is Management to Work Class A, like below我想更新Working Unit为Management to Work Class A的记录,如下图

{
"personalDetails": {
    "First Name": "Paul", 
    "Last Name": "Jamessen", 
    "Work Class": "A", 
    "Working Unit": "Management", 
    "email": "demo@demo.com"
    }
}

You can use jsonb_set()您可以使用jsonb_set()

update the_table
  set the_column = jsonb_set(the_column, '{personalDetails,"Work Class"}', '"A"')
where the_column #>> '{personalDetails,"Working Unit"}' = 'Management';
update table_name 
set column_name = jsonb_set("column_name", '{"personalDetails", "Work Class"}', '"A"'::jsonb) 
where column_name::json->'personalDetail'->>'Working Unit' = 'Management' ;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM