【发布时间】:2020-05-15 18:43:32
【问题描述】:
我有一个表,其中包含一个名为 data 的列,其中包含一些 JSON。如果表中任何给定行的 data 列不为空,则它将包含一个 JSON 编码的对象,其键名为 companyDescription。与 companyDescription 关联的值是任意 JavaScript 对象。
如果我这样查询我的表
select data->>'companyDescription' from companies where data is not null;
我得到这样的行
{"ops":[{"insert":"\n"}]}
我正在尝试更新表中的所有行,以便 companyDescription 值将以下列方式包装在另一个 JSON 编码的 JavaScript 对象中:
{"type":"quill","content":{"ops":[{"insert":"\n"}]}}
这是我尝试过的,但我认为它不起作用,因为->> 运算符用于选择一些 JSON 字段作为 text,并且确实失败并出现语法错误。
update companies
set data->>'companyDescription' = CONCAT(
'{"type":"quill","content":',
(select data->>'companyDescription' from companies),
'}'
);
这样做的正确方法是什么?
【问题讨论】:
标签: sql json postgresql