gpt4 book ai didi

postgresql - 如何重命名 jsonb 列表中的键?

转载 作者:行者123 更新时间:2023-11-29 12:08:06 25 4
gpt4 key购买 nike

我正在尝试重命名列表中所有对象的 json 键,例如给定 my_table 和包含 jsonb 列表的 my_col:

[{name:0}, {name:1}, {name:2}]

我已经弄清楚如何通过使用显式索引删除和添加键来更改列表的单个元素,例如

select (my_col->0)::jsonb - 'name' || 
jsonb_build_object('new_name', my_col->0->'name')
from my_table

但是如何将其应用于列表中的所有元素呢?

最佳答案

这是迄今为止我使用横向连接的最佳答案。

update my_table t1
set my_col =
(select json_agg(el::jsonb - 'name' || jsonb_build_object('new_name', el->'name'))
from my_table t2, jsonb_array_elements(t2.my_col) as el
where t1.id = t2.id)

理想情况下,只会有一些简洁的模式匹配运算符,例如my_col->*->'name'.

关于postgresql - 如何重命名 jsonb 列表中的键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50871692/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com