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