मारियाडीबी में, JSON_ARRAY_INSERT()
एक अंतर्निहित फ़ंक्शन है जो JSON दस्तावेज़ में एक मान सम्मिलित करता है और परिणाम देता है।
सिंटैक्स
वाक्य रचना इस प्रकार है:
JSON_ARRAY_INSERT(json_doc, path, value[, path, value] ...)
जहां json_doc
JSON दस्तावेज़ है, path
वह पथ है जहाँ आप मान/मूल्य सम्मिलित करना चाहते हैं, और value
डालने का मूल्य है।
उदाहरण
प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है।
SELECT JSON_ARRAY_INSERT('[0, 1, 2]', '$[1]', 3);
परिणाम:
+-------------------------------------------+ | JSON_ARRAY_INSERT('[0, 1, 2]', '$[1]', 3) | +-------------------------------------------+ | [0, 3, 1, 2] | +-------------------------------------------+
इस मामले में, मान 3
सरणी में स्थिति 1
. पर डाला गया था . सरणी शून्य आधारित हैं, इसलिए यह सरणी में दूसरा तत्व बन जाता है।
एकाधिक मान डालें
आप JSON_ARRAY_INSERT()
में एक ही कॉल में कई मान सम्मिलित कर सकते हैं .
उदाहरण:
SELECT JSON_ARRAY_INSERT('[0, 1, 2]', '$[0]', 4, '$[2]', 5);
परिणाम:
+------------------------------------------------------+ | JSON_ARRAY_INSERT('[0, 1, 2]', '$[0]', 4, '$[2]', 5) | +------------------------------------------------------+ | [4, 0, 5, 1, 2] | +------------------------------------------------------+
मूल्यांकन बाएं से दाएं किया जाता है।
अगर हम path
स्विच करते हैं तो यहां क्या होता है? /value
चारों ओर तर्क:
SELECT JSON_ARRAY_INSERT('[0, 1, 2]', '$[2]', 5, '$[0]', 4);
परिणाम:
+------------------------------------------------------+ | JSON_ARRAY_INSERT('[0, 1, 2]', '$[2]', 5, '$[0]', 4) | +------------------------------------------------------+ | [4, 0, 1, 5, 2] | +------------------------------------------------------+
एकाधिक सरणी
आप JSON_ARRAY_INSERT()
पर एक ही कॉल में एक से अधिक सरणी में मान सम्मिलित कर सकते हैं ।
उदाहरण:
SET @json_doc = '{"a": [0, 1], "b": [2, 3]}';
SELECT JSON_ARRAY_INSERT(@json_doc, '$.a[1]', 4, '$.b[2]', 5);
परिणाम:
+--------------------------------------------------------+ | JSON_ARRAY_INSERT(@json_doc, '$.a[1]', 4, '$.b[2]', 5) | +--------------------------------------------------------+ | {"a": [0, 4, 1], "b": [2, 3, 5]} | +--------------------------------------------------------+
नेस्टेड सरणी
नेस्टेड सरणी में मान डालने का एक उदाहरण यहां दिया गया है:
SET @json_doc = '[0, 1, [2, 3]]';
SELECT JSON_ARRAY_INSERT(@json_doc, '$[2][1]', 4);
परिणाम:
+--------------------------------------------+ | JSON_ARRAY_INSERT(@json_doc, '$[2][1]', 4) | +--------------------------------------------+ | [0, 1, [2, 4, 3]] | +--------------------------------------------+
बड़ा JSON दस्तावेज़
थोड़ा बड़ा JSON दस्तावेज़ वाला एक उदाहरण यहां दिया गया है।
मैं JSON_DETAILED()
का भी उपयोग करता हूं परिणाम को सुंदर बनाने के लिए:
SET @json_doc = '{
"pet": {
"name": "Fluffy",
"diet": ["Fish", "Water"]
}
}';
SELECT JSON_DETAILED(
JSON_ARRAY_INSERT(
@json_doc,
'$.pet.diet[1]',
'Chicken')
);
परिणाम:
{ "pet": { "name": "Fluffy", "diet": [ "Fish", "Chicken", "Water" ] } }
अशक्त तर्क
यदि पहला तर्क NULL
है , परिणाम NULL
. है :
SELECT JSON_ARRAY_INSERT(null, '$[1]', 4);
परिणाम:
+------------------------------------+ | JSON_ARRAY_INSERT(null, '$[1]', 4) | +------------------------------------+ | NULL | +------------------------------------+
वही path
. पर लागू होता है तर्क:
SELECT JSON_ARRAY_INSERT('[0, 1, 2, 3]', null, 4);
परिणाम:
+--------------------------------------------+ | JSON_ARRAY_INSERT('[0, 1, 2, 3]', null, 4) | +--------------------------------------------+ | NULL | +--------------------------------------------+
हालांकि, अगर value
तर्क NULL
है , फिर NULL
सरणी में डाला गया है:
SELECT JSON_ARRAY_INSERT('[0, 1, 2]', '$[1]', null);
परिणाम:
+----------------------------------------------+ | JSON_ARRAY_INSERT('[0, 1, 2]', '$[1]', null) | +----------------------------------------------+ | [0, null, 1, 2] | +----------------------------------------------+
आप JSON_ARRAY_APPEND()
का भी उपयोग कर सकते हैं किसी सरणी में मान जोड़ने के लिए।