我有一個具有這種格式的 json 列以及如何按鍵修改 postgres jsonb 中的元素?
{
"Content": {
"CustomerInfo": {
},
"Identifier": null,
"Operating": {
"Identifier": "ABC-8585",
"TypeIdentifier": "VAL_OP",
"SaleIdentifier": "01000042"
},
},
}
如何從識別符號鍵中洗掉“ABC-”?
導致:
{
"Content": {
"CustomerInfo": {
},
"Identifier": null,
"Operating": {
"Identifier": "8585",
"TypeIdentifier": "VAL_OP",
"SaleIdentifier": "01000042"
},
},
}
這是我用于更新 json 值的查詢,但它不起作用。
update "tbleName" set "columnName" = replace('Content.Operating.Identifier','ABC-','')::jsonb ? 'Content.Operating.Identifier'
uj5u.com熱心網友回復:
您可以通過組合使用jsonb_set、常規 JSON 讀取運算子和來實作此目的replace:
UPDATE "tbleName"
set "columnName" = jsonb_set(
"columnName"::jsonb,
'{Content,Operating,Identifier}',
replace(("columnName"::jsonb -> 'Content' -> 'Operating' -> 'Identifier')::text, 'ABC-', '')::jsonb
);
在這里,您通過以下方式計算列的新值:
- 讀取所需的嵌套 JSON 鍵的值
- 做更換
- 將結果寫回原始 JSON 結構中的相同嵌套 JSON 鍵
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/535306.html
