あなたは、空のJSON配列でHistoricalPrices列をinitilialisingことから始めなければなりません。あなたが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', 12.34),
'$', json_object('CreateDate', '2016-05-22', 'Price', 12.50)
)
WHERE ProductID = 1;
:
UPDATE Products
SET HistoricalPrices =
json_array_append(HistoricalPrices,
'$', json_object('CreateDate', '2016-05-01', 'Price', 23.65)
)
WHERE ProductID = 1;
複数の価格が一度に追加することができます
JSON値の構造は次のようになります。
[
{
"CreateDate": "2016-05-01",
"Price": 12.34
},
{
"CreateDate": "2016-05-22",
"Price": 12.50
}
]
は良いtrincotを見えます!ありがとう。それを試してここで更新します。 – Dror
json配列のHistoricalPrices内で特定のproductIDを検索することは可能でしょうか?日付範囲内の特定の価格を検索するのと同じですか? – Dror
それは本当に別の質問です。それについて新しい質問を投稿してもいいですか(この回答があなたのために働くことを確認した後)? – trincot