मारियाडीबी में, 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() . का भी उपयोग कर सकते हैं किसी सरणी में मान डालने के लिए।