gpt4 book ai didi

postgresql - 在 Postgres 中存储和更新 jsonb 值

转载 作者:行者123 更新时间:2023-11-29 14:28:17 27 4
gpt4 key购买 nike

我有一个表格,例如:

ID | Details
1 | {"name": "my_name", "phone": "1234", "address": "my address"}
2 | {"name": "his_name", "phone": "4321", "address": "his address"}

在此,Details 是一个 jsonb 对象。我想向 jsonb 添加另一个名为“tags”的字段,它应该有一些特定的键。在这种情况下,“姓名”、“电话”。查询执行后的最终状态应该是:

 ID | Details
1 | {"tags": {"name": "my_name", "phone": "1234"},"name": "my_name", "phone": "1234", "address":"my address"}
2 | {"tags": {"name": "his_name", "phone": "4321"},"name": "his_name", "phone": "4321", "address":"his address"}

我可以想到以下步骤来完成此操作:

  • 遍历每一行并提取变量中的 details["name"] 和 details["phone"]。
  • 将这些变量添加到 jsonb。

我想不出相应的 postgres 查询应该如何。请指导。

最佳答案

使用jsonb_build_object

update t set details 
= jsonb_build_object ( 'tags',
jsonb_build_object( 'name', details->>'name', 'phone',details->>'phone')
)
|| details

DEMO

关于postgresql - 在 Postgres 中存储和更新 jsonb 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55294340/

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