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

JSON_MERGE_PATCH () - MySQL में JSON दस्तावेज़ों का RFC 7396 अनुपालन मर्ज करें

MySQL में, JSON_MERGE_PATCH() फ़ंक्शन डुप्लिकेट कुंजियों वाले सदस्यों को संरक्षित किए बिना, दो या अधिक JSON दस्तावेज़ों का RFC 7396 अनुपालक मर्ज निष्पादित करता है।

आप तर्क के रूप में JSON दस्तावेज़ प्रदान करते हैं।

सिंटैक्स

वाक्य रचना इस प्रकार है:

JSON_MERGE_PATCH(json_doc, json_doc[, json_doc] ...)

जहां json_doc मर्ज किए जाने वाले JSON दस्तावेज़ हैं। यदि कोई दस्तावेज़ अमान्य है, तो एक त्रुटि उठाई जाती है।

उदाहरण 1 - मूल उपयोग

प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है।

SELECT JSON_MERGE_PATCH('{"Name": "Homer"}', '{"Age": 39}') Result;

परिणाम:

+------------------------------+
| Result                       |
+------------------------------+
| {"Age": 39, "Name": "Homer"} |
+------------------------------+

तो इस उदाहरण में, हमने दो अलग-अलग वस्तुओं को एक वस्तु में मिला दिया।

उदाहरण 2 - डुप्लीकेट कुंजियां

जैसा कि उल्लेख किया गया है, यह फ़ंक्शन डुप्लिकेट कुंजियों वाले सदस्यों को संरक्षित नहीं करता है। उदाहरण:

SELECT 
  JSON_MERGE_PATCH('{"Name": "Bartholomew"}', '{"Name": "Bart"}') Result;

परिणाम:

+------------------+
| Result           |
+------------------+
| {"Name": "Bart"} |
+------------------+

तो इस मामले में बार्ट जीत गए।

यदि आप सदस्यों को डुप्लीकेट कुंजियों से सुरक्षित रखना चाहते हैं तो JSON_MERGE_PRESERVE() का उपयोग करें इसके बजाय कार्य करें। इस उदाहरण के लिए उस फ़ंक्शन का उपयोग करने से Name हो जाएगा Bartholomew . दोनों वाली एक सरणी में और Bart . इस तरह:

SELECT 
  JSON_MERGE_PRESERVE('{"Name": "Bartholomew"}', '{"Name": "Bart"}') Result;

परिणाम:

+-----------------------------------+
| Result                            |
+-----------------------------------+
| {"Name": ["Bartholomew", "Bart"]} |
+-----------------------------------+

उदाहरण 3 - एकाधिक सदस्य

यहाँ एक और उदाहरण है, लेकिन वस्तु में एक अतिरिक्त सदस्य के साथ:

SELECT 
  JSON_MERGE_PATCH('{"Name": "Bartholomew", "Age": 10}', '{"Name": "Bart"}') Result;

परिणाम:

+-----------------------------+
| Result                      |
+-----------------------------+
| {"Age": 10, "Name": "Bart"} |
+-----------------------------+

तो, बार्ट अभी भी जीतता है, और उसे पहले ऑब्जेक्ट के अन्य सदस्यों के साथ मिला दिया गया है।

बेशक, यह दूसरे तरीके से भी काम करता है - यदि हम दूसरी वस्तु में अतिरिक्त सदस्य जोड़ते हैं तो परिणाम समान होता है।

SELECT 
  JSON_MERGE_PATCH('{"Name": "Bartholomew"}', '{"Name": "Bart", "Age": 10}') Result;

परिणाम:

+-----------------------------+
| Result                      |
+-----------------------------+
| {"Age": 10, "Name": "Bart"} |
+-----------------------------+

उदाहरण 4 - अधिक दस्तावेज़

आप केवल दो दस्तावेज़ों को मर्ज करने तक सीमित नहीं हैं। आप जितने चाहें उतने मर्ज कर सकते हैं। यहां तीन वस्तुओं को मिलाने का एक उदाहरण दिया गया है।

SELECT 
  JSON_MERGE_PATCH('{"Name": "Bart"}', '{"Age": 10}', '{"Hair Color": "Yellow"}') Result;

परिणाम:

+-----------------------------------------------------+
| Result                                              |
+-----------------------------------------------------+
| {"Age": 10, "Name": "Bart", "Hair Color": "Yellow"} |
+-----------------------------------------------------+

उदाहरण 5 - सरणी

एक ही नाम के दो सरणियों को मिलाने से उनमें से केवल एक ही संरक्षित रहेगा:

SELECT 
  JSON_MERGE_PATCH('{"Hobbies": ["Trouble", "Mischief"]}', '{"Hobbies": ["Skateboarding"]}') Result;

परिणाम:

+--------------------------------+
| Result                         |
+--------------------------------+
| {"Hobbies": ["Skateboarding"]} |
+--------------------------------+

फिर से, आप JSON_MERGE_PRESERVE() . का उपयोग कर सकते हैं यदि आपको दोनों सरणियों को संरक्षित करने की आवश्यकता है। तो पिछला उदाहरण निम्नलिखित को फिर से लिखा जा सकता है:

SELECT 
  JSON_MERGE_PRESERVE('{"Hobbies": ["Trouble", "Mischief"]}', '{"Hobbies": ["Skateboarding"]}') Result;

परिणाम:

+-------------------------------------------------------+
| Result                                                |
+-------------------------------------------------------+
| {"Hobbies": ["Trouble", "Mischief", "Skateboarding"]} |
+-------------------------------------------------------+

उदाहरण 6 - एक बड़ा JSON दस्तावेज़

यहां एक उदाहरण दिया गया है जो बड़े JSON दस्तावेज़ों को (थोड़ा) मर्ज करता है।

SET @data1 = '{  
    "Suspect": {    
       "Name": "Bart", 
       "Hobbies": ["Skateboarding", "Mischief"]  
    }
 }',
 @data2 = '{  
    "Suspect": {    
       "Age": 10, 
       "Parents": ["Marge", "Homer"]  
    }
 }';
SELECT JSON_MERGE_PATCH(@data1, @data2) Result;

परिणाम:

+-------------------------------------------------------------------------------------------------------------------+
| Result                                                                                                            |
+-------------------------------------------------------------------------------------------------------------------+
| {"Suspect": {"Age": 10, "Name": "Bart", "Hobbies": ["Skateboarding", "Mischief"], "Parents": ["Marge", "Homer"]}} |
+-------------------------------------------------------------------------------------------------------------------+

यह फ़ंक्शन कैसे मर्ज करता है, इसके सटीक नियमों के लिए, MySQL दस्तावेज़ देखें।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. XAMPP के साथ आसानी से वेब सर्वर सेट करें

  2. MySQL JDBC ड्राइवर कनेक्शन स्ट्रिंग क्या है?

  3. MySQL बिनलॉग सर्वर की खोज - रिपल

  4. MySQL - गिराए गए प्रदर्शन स्कीमा डेटाबेस को पुनर्प्राप्त करें

  5. पायथन MySQL कनेक्टर - फ़ेचोन का उपयोग करते समय अपठित परिणाम मिला