PSQL 更新一个 jsonb 属性 并连接到它的当前值
PSQL Update a jsonb property with a concatenation to its current value
假设我有一个 jsonb 类型的列 X。 X 有 json 的结构
{"y":"some value","z":"some more values"}.
现在我要实现的是,我要追加“!!!!”到所有 z 属性的末尾。附加操作应该更新现有记录
使用 ->>
运算符将 z
的值作为 text
并使用 ||
运算符附加另一个字符串。用 to_jsonb()
将结果转换为 jsonb
并用 jsonb_set()
.
赋值给 z
SELECT jsonb_set(x, '{z}', to_jsonb(x->>'z' || '!!!!'))
FROM elbat;
成功了
UPDATE thetable set x=jsonb_set(x, '{z}', to_jsonb(x->>'z' || '!!!!'), true)
假设我有一个 jsonb 类型的列 X。 X 有 json 的结构
{"y":"some value","z":"some more values"}.
现在我要实现的是,我要追加“!!!!”到所有 z 属性的末尾。附加操作应该更新现有记录
使用 ->>
运算符将 z
的值作为 text
并使用 ||
运算符附加另一个字符串。用 to_jsonb()
将结果转换为 jsonb
并用 jsonb_set()
.
z
SELECT jsonb_set(x, '{z}', to_jsonb(x->>'z' || '!!!!'))
FROM elbat;
成功了
UPDATE thetable set x=jsonb_set(x, '{z}', to_jsonb(x->>'z' || '!!!!'), true)