【发布时间】:2022-01-01 02:54:50
【问题描述】:
我需要替换 Postgresql 中 jsonb 对象中特定键的值:
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"}
更新了预期的结果,还不够清楚。
【问题讨论】:
标签: postgresql replace jsonb