我尝试了许多不同的东西,我在这里和那里聚会(官方文档,博客帖子,所以......)但没有成功,所以这是我的问题给你所有:用postgres乘以json数组的每个项目的值9.6
对于这个表:
basik=# select id, jsonb_pretty(range_price_list_values::jsonb) from product;
id | jsonb_pretty
--------------------------------------+--------------------------
cc80c862-c264-4bfe-a929-a52478c8d59e | [ +
| { +
| "to": 10, +
| "from": 5, +
| "price": 1 +
| }, +
| { +
| "to": 20, +
| "from": 15, +
| "price": 1298000+
| }, +
| { +
| "to": 30, +
| "from": 25, +
| "price": 500000 +
| } +
| ]
如何到乘以1000的每一行的每个元素的price
关键表?
PS:我失败暂定为环顾四周jsonb_ *功能和窗口功能:
WITH prices as (select id, jsonb_array_elements(range_price_list_values::jsonb) from product)
UPDATE product SET range_price_list_values = JSONB_SET(
range_price_list_values::jsonb,
'{' || price.rank || ',price}', jsonb_extract_path('{' || price.rank || ',price}')::int * 1000, false
)::json;
感谢您抽出时间来阅读! :)
'discrete_price_list_values'是'range_price_list_values'不同?.. –
对不起,这是一个复制粘贴错字。现在修好。 – Florian