我嘗試了許多不同的東西,我在這裏和那裏聚會(官方文檔,博客帖子,所以......)但沒有成功,所以這是我的問題給你所有:用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