Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

JSON_EXTRACT () - MySQL में JSON दस्तावेज़ से डेटा लौटाएं

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"] |
+---------------------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL, जांचें कि SQL के साथ तालिका में कोई कॉलम मौजूद है या नहीं

  2. प्रॉक्सीएसक्यूएल:सभी कई संसाधन

  3. MySQL में सामान्य त्रुटियों का निवारण करने के लिए उपयोगी टिप्स

  4. PostgreSQL इंडेक्स बनाम InnoDB इंडेक्स - अंतर को समझना

  5. MySQL में एक स्ट्रिंग को "अनहेक्स" करने के 3 तरीके