ฉันต้องการจะแทนที่การกรองค่าของเจาะจงกุญแจในกา jsonb วัตถุอยู่ใน Postgresql:
create table content (
id int,
dynamic_fields jsonb
);
insert into content values (0, '{
"key1": "aaaaa text1",
"key2": "text1",
"key3": "blabla"}'::jsonb);
UPDATE content
SET dynamic_fields = replace(dynamic_fields::text, 'text1', 'text2')::jsonb;
นี่รหัสที่ทำให้คนตามผล:
id | dynamic_fields
0 | {"key1": "aaaaa text2", "key2": "text2", "key3": "blabla"}
แทนที่จะแทนที่ทั้งหมดที่เกิดขึ้น"text1"ฉันอยากจะแทนที่เพียงข้อความข้างในค่ายของ"key1"ยังไงฉันต้องทำมัน?
ผลของปรับปรุงควรจะเป็นอย่าง:
id | dynamic_fields
0 | {"key1": "aaaaa text1", "key2": "text2", "key3": "blabla"}
ปรับปรุงที่ต้องการผล,มันไม่ได้ชัดเจนพอแล้ว