MySQL में, JSON_ARRAY_INSERT()
फ़ंक्शन का उपयोग किसी सरणी में एक नया मान डालने के लिए किया जाता है।
आप पहले तर्क के रूप में JSON दस्तावेज़ प्रदान करते हैं, उसके बाद सम्मिलित करने के लिए पथ, उसके बाद डालने के लिए मान प्रदान करते हैं।
सिंटैक्स
वाक्य रचना इस प्रकार है:
JSON_INSERT(json_doc, path, val[, path, val] ...)
कहां:
json_doc
JSON दस्तावेज़ है।path
उस तत्व का पथ है जिसके लिए नया मान सम्मिलित करना है।val
नया मान है जो डाला जाएगा।
पथ-मान युग्मों का मूल्यांकन बाएँ से दाएँ किया जाता है। एक जोड़ी का मूल्यांकन करके तैयार किया गया दस्तावेज़ नया मान बन जाता है जिसके विरुद्ध अगले जोड़े का मूल्यांकन किया जाता है।
उदाहरण 1 - मूल उपयोग
प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है।
SELECT JSON_ARRAY_INSERT('[1, 2, 3]', '$[1]', 4) AS 'Result';
परिणाम:
+--------------+ | Result | +--------------+ | [1, 4, 2, 3] | +--------------+
तो तीसरा तर्क निर्दिष्ट पथ पर सरणी में डाला गया है। इस मामले में, मैं $[1]
. का उपयोग करता हूं पथ के लिए, जो दूसरे तत्व को संदर्भित करता है (JSON सरणियाँ शून्य-आधारित क्रमांकन का उपयोग करती हैं - क्रमांकन 0
से शुरू होता है। )
उदाहरण 2 - नेस्टेड ऐरे
यहां एक सरणी में मान डालने का एक उदाहरण दिया गया है जो किसी अन्य सरणी के अंदर नेस्टेड है।
SELECT JSON_ARRAY_INSERT('[1, 2, [3, 4]]', '$[2][1]', 5) AS 'Result';
परिणाम:
+-------------------+ | Result | +-------------------+ | [1, 2, [3, 5, 4]] | +-------------------+
तो यहाँ, मैं उपयोग करता हूँ $[2][1]
पथ के रूप में। [2]
बाहरी सरणी के तीसरे तत्व को संदर्भित करता है। [1]
नेस्टेड सरणी के दूसरे तत्व को संदर्भित करता है।
उदाहरण 3 - एक बड़ा JSON दस्तावेज़
यह उदाहरण एक (थोड़ा) बड़ा JSON दस्तावेज़ का उपयोग करता है। यह दर्शाता है कि दस्तावेज़ में सरणी कहाँ है, इसके आधार पर पथ कैसे बदलता है।
SET @data = '{ "Person": { "Name": "Homer", "Hobbies": ["Eating", "Sleeping"] } }'; SELECT JSON_ARRAY_INSERT(@data, '$.Person.Hobbies[1]', "Base Jumping") AS 'Result';
परिणाम:
+----------------------------------------------------------------------------------+ | Result | +----------------------------------------------------------------------------------+ | {"Person": {"Name": "Homer", "Hobbies": ["Eating", "Base Jumping", "Sleeping"]}} | +----------------------------------------------------------------------------------+