我正在尝试使用现有数据填充一个新的 JSON 字段,并且可以使用一些帮助来正确设置该字段的格式。我有一个子查询返回一个值列表,这些值旨在成为 JSON 属性中的一个数组。子查询返回正确的结果,但我无法完全正确填充 JSON 数组。
我的查询基本上是这样的:
UPDATE foos SET json_property =
cast(
'{"bar_ids":' ||
(select json_agg(x) from (select id from bars) x) ||
'}'
as json);
我要存储的是:
{"bar_ids":[1,2,3,4]}
但我目前得到的是:
{"bar_ids":[{"id":1},{"id":2},{"id":3},{"id":4}]}
想法?
最佳答案
看来一个子查询是不需要的:
UPDATE foos SET json_property =
CAST(
'{"bar_ids":' ||
(SELECT JSON_AGG(x.id) FROM bars x) ||
'}'
AS json);
关于json - Postgres : Populate a JSON field with an array of values from a subquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48415868/