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