我正在嘗試對 mysql 資料庫中的 json 陣列的內容求和,下面是 JSON 格式和我正在運行的查詢。有什么問題嗎?
// 選項 JSON 格式:
[
{
"optionId": 1,
"optionName": "With Meat",
"optionPrice": 2000
},
{
"optionId": 2,
"optionName": "With Veggies",
"optionPrice": 0
}
]
// 詢問:
SELECT id, SUM(options->'$[*].optionPrice') FROM table_order_items GROUP BY id;
結果是0,應該是2000
雖然此查詢:
SELECT id, options->'$[*].optionPrice' FROM table_order_items;
正確回傳[2000,0]
uj5u.com熱心網友回復:
您需要JSON_TABLE()提取價格的功能:
SELECT t.id,
SUM(j.price) AS total
FROM table_order_items t
JOIN JSON_TABLE(
t.options,
'$[*]' COLUMNS(price INT PATH '$.optionPrice')
) j
GROUP BY t.id;
請參閱演示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/496300.html
