如何在 json 现有值中连接一些文本

How to concat some text in json exiting value

我有 json 喜欢 "address":"Ghaziabad street no 2 near",我想添加一些文字。

更新后我要

"address":"Ghaziabad street no 2 near temple"

create table address(details json)

insert into address 
values('{"ID":"001","name": "Ven", "Country": "Australia",  "city": "Sydney", "Job Title":"Database Consultant"}')

我有 300 条这样的记录。我的任务是在 city (key) 中连接更多的文本。

所以json喜欢

{
  "ID":"001",
  "name": "Ven", 
  "Country": "Australia",  
  "city": "Sydney alias meta ", 
  "Job Title":"Database Consultant"
}

我想在所有行中附加别名元json

您需要将 jsonb_set()->> 运算符结合使用以获得旧值。由于您使用的是 json 而不是推荐的 jsonb 类型,因此您需要转换值:

update address
  set details = jsonb_set(details::jsonb, 
                          '{city}', 
                          to_jsonb((details ->> 'city')||' alias meta'))
;

(details ->> 'city')||' alias meta' 获取键 city 的值并附加字符串 ' alias meta'。然后使用此值为 jsonb_set() 中的 city 键设置新值以更新列。