gpt4 book ai didi

Postgresql - 如何更改 JSONB 数据类型?

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

我有一个表,其中包含数据类型错误的 jsonb 列“详细信息”,如下所示:

select id,details from products;

id | details
---+-----------------------------------------
1 | {"price": "310", "supplier": "VendorA"}
2 | {"price": "250", "supplier": "VendorB"}

这里我想将“价格”的数据类型更改为整数,目前以字符串形式存储。期望的结果如下:

id |              details             
---+-----------------------------------------
1 | {"price": 310, "supplier": "VendorA"}
2 | {"price": 250, "supplier": "VendorB"}

如果你能指导我如何实现它,我将不胜感激?

最佳答案

您可以使用函数 to_jsonb() 将值转换为 json 数字:

select id, jsonb_set(details, '{price}', to_jsonb((details->>'price')::int))
from products

id | jsonb_set
----+---------------------------------------
1 | {"price": 310, "supplier": "VendorA"}
2 | {"price": 250, "supplier": "VendorB"}
(2 rows)

更新语句可能如下所示:

update products
set details = jsonb_set(details, '{price}', to_jsonb((details->>'price')::int))

关于Postgresql - 如何更改 JSONB 数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53792445/

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