您应该首先使用空 JSON 数组初始化HistoricalPrices列。你可以这样做json_array
:
UPDATE Products
SET HistoricalPrices = json_array()
WHERE HistoricalPrices IS NULL;
插入新产品时也应该这样做:
INSERT INTO Products (..., HistoricalPrices)
VALUES (..., json_array());
要在现有记录中向HistoricalPrices添加价格,您可以使用json_array_append
.
例如,要为产品 ID 1 附加 2016 年 5 月 1 日 12.34 的历史价格,您将执行:
UPDATE Products
SET HistoricalPrices =
json_array_append(HistoricalPrices,
'$', json_object('CreateDate', '2016-05-01', 'Price', 23.65)
)
WHERE ProductID = 1;
可以一次性添加多个价格:
UPDATE Products
SET HistoricalPrices =
json_array_append(HistoricalPrices,
'$', json_object('CreateDate', '2016-05-01', 'Price', 12.34),
'$', json_object('CreateDate', '2016-05-22', 'Price', 12.50)
)
WHERE ProductID = 1;
JSON 值的结构将是:
[
{
"CreateDate": "2016-05-01",
"Price": 12.34
},
{
"CreateDate": "2016-05-22",
"Price": 12.50
}
]