ऐसा करने के लिए कोई सीधा JSON फ़ंक्शन नहीं है। हम कुछ JSON फ़ंक्शन के संयोजन का उपयोग कर सकते हैं।
हम oldKey-oldValue . को हटा देंगे Json_Remove()
फ़ंक्शन, और फिर Json_Insert()
newKey-oldValue जोड़ी।
Json_Extract()
फ़ंक्शन का उपयोग JSON दस्तावेज़ में इनपुट कुंजी के अनुरूप मान प्राप्त करने के लिए किया जाता है।
UPDATE `my_table`
SET `my_col` = JSON_INSERT(
JSON_REMOVE(my_col, '$.oldKeyValue'),
'$.newKeyValue',
JSON_EXTRACT(my_col, '$.oldKeyValue')
);
SET @my_col := '{"endDate": "2018-10-10", "startDate": "2017-09-05", "oldKeyValue": {"foo": 1000, "bar": 2000, "baz": 3000}, "anotherValue": 0}';
SET @new_col := JSON_INSERT(
JSON_REMOVE(@my_col, '$.oldKeyValue'),
'$.newKeyValue',
JSON_EXTRACT(@my_col,'$.oldKeyValue')
);
SELECT @new_col;
परिणाम
| @new_col |
| ------------------------------------------------------------------------------------------------------------------------------- |
| {"endDate": "2018-10-10", "startDate": "2017-09-05", "newKeyValue": {"bar": 2000, "baz": 3000, "foo": 1000}, "anotherValue": 0} |
Json_Extract()
के विकल्प के रूप में , हम ->
. का भी उपयोग कर सकते हैं JSON दस्तावेज़ में दी गई कुंजी के अनुरूप मान तक पहुँचने के लिए ऑपरेटर।
UPDATE `my_table`
SET `my_col` = JSON_INSERT(
JSON_REMOVE(my_col, '$.oldKeyValue'),
'$.newKeyValue',
my_col->'$.oldKeyValue'
);