PostgreSQL将JSONB列从JSON字符串更新为JSON对象数组

vzgqcmou  于 2022-12-03  发布在  PostgreSQL
关注(0)|答案(1)|浏览(385)

我尝试从JSON字符串更新JSONB列的值,如下所示:

{"fruit":"apple", "color":"blue"}

JSON对象数组,如:

[{"fruit":"apple"}, {"color":"blue"}]

我尝试了以下命令:

UPDATE table_name SET data = json_build_array(data::JSONB);

然而,它给了我以下信息:

[{"fruit":"apple","color":"blue"}]

我可以使用什么来获取数组中的单独JSON对象?

wydwbb8l

wydwbb8l1#

可以使用json_each访问JSON对象中的每个键-值对,然后将结果聚合到一个数组中:

update table_name set data = (select json_agg(json_build_object(v.key, v.value)) 
                              from json_each(data) v)

See fiddle

相关问题