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

मारियाडीबी JSON_MERGE_PATCH () समझाया गया

मारियाडीबी में, JSON_MERGE_PATCH() एक अंतर्निहित फ़ंक्शन है जो दो या अधिक JSON दस्तावेज़ों को मर्ज करता है और परिणाम देता है।

JSON_MERGE_PATCH() फ़ंक्शन JSON_MERGE() . के लिए RFC 7396-अनुपालक प्रतिस्थापन है फ़ंक्शन, जिसे बहिष्कृत कर दिया गया है।

सिंटैक्स

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

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

जहां json_doc मर्ज करने के लिए JSON दस्तावेज़ हैं।

उदाहरण

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

SELECT JSON_MERGE_PATCH('{"name":"Wag"}', '{"type":"Dog"}');

परिणाम:

+------------------------------------------------------+
| JSON_MERGE_PATCH('{"name":"Wag"}', '{"type":"Dog"}') |
+------------------------------------------------------+
| {"name": "Wag", "type": "Dog"}                       |
+------------------------------------------------------+

हम देख सकते हैं कि दो दस्तावेज़ों को एक में मिला दिया गया है।

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

SELECT JSON_MERGE_PATCH(
    '{ "name" : "Wag" }', 
    '{ "type" : "Dog" }',
    '{ "score" : [ 9, 7, 8 ] }'
    ) AS Result;

परिणाम:

+----------------------------------------------------+
| Result                                             |
+----------------------------------------------------+
| {"name": "Wag", "type": "Dog", "score": [9, 7, 8]} |
+----------------------------------------------------+

सरणी

JSON_MERGE_PATCH() फ़ंक्शन सरणियों को मर्ज नहीं करता:

SELECT JSON_MERGE_PATCH(
    '[1,2,3]', 
    '[4,5,6]'
    ) AS Result;

परिणाम:

+-----------+
| Result    |
+-----------+
| [4, 5, 6] |
+-----------+

यह (बहिष्कृत) JSON_MERGE() . के विपरीत है फ़ंक्शन और इसका पर्यायवाची JSON_MERGE_PRESERVE() , दोनों ही सरणियों को मर्ज करते हैं।

परिणाम का प्रारूप

आपने देखा होगा कि JSON_MERGE_PATCH() परिणामी दस्तावेज़ में रिक्त स्थान जोड़ता है। यदि यह एक समस्या है, तो आप JSON_COMPACT() . का उपयोग कर सकते हैं जगह हटाने के लिए।

उदाहरण:

SELECT 
    JSON_COMPACT(
        JSON_MERGE_PATCH(
            '{"name":"Wag"}', 
            '{"type":"Dog"}',
            '{"score":[9,7,8]}'
        )
    ) AS Result;

परिणाम:

+---------------------------------------------+
| Result                                      |
+---------------------------------------------+
| {"name":"Wag","type":"Dog","score":[9,7,8]} |
+---------------------------------------------+

लेकिन अगर आपको दूसरे रास्ते पर जाना है और अतिरिक्त स्वरूपण प्राप्त करना है, जैसे कि इंडेंटेड संरचनाएं, तो JSON_DETAILED() आज़माएं। समारोह।

SELECT 
    JSON_DETAILED(
        JSON_MERGE_PATCH(
            '{ "name" : "Wag" }', 
            '{ "type" : "Dog" }',
            '{ "score" : [ 9, 7, 8 ] }'
        )
    ) AS Result;

परिणाम:

+---------------------------------------+
| Result                                |
+---------------------------------------+
| {
    "name": "Wag",
    "type": "Dog",
    "score": 
    [
        9,
        7,
        8
    ]
} |
+---------------------------------------+

शून्य तर्क

अगर कोई तर्क NULL है , परिणाम NULL . है :

SELECT 
    JSON_MERGE_PATCH('{"a":1}', null) AS a,
    JSON_MERGE_PATCH(null, '{"a":1}') AS b,
    JSON_MERGE_PATCH(null, null) AS c;

परिणाम:

+------+------+------+
| a    | b    | c    |
+------+------+------+
| NULL | NULL | NULL |
+------+------+------+

गलत पैरामीटर गणना

बिना किसी तर्क के फ़ंक्शन को कॉल करने से त्रुटि होती है:

SELECT JSON_MERGE_PATCH();

परिणाम:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_MERGE_PATCH'

जब आप केवल एक तर्क देते हैं तो ऐसा ही होता है:

SELECT JSON_MERGE_PATCH('{"a":1}');

परिणाम:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_MERGE_PATCH'

  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 और MariaDB समाधानों में उच्च विलंबता के प्रभावों को समझना

  2. मारियाडीबी JSON_OBJECTAGG () समझाया गया

  3. कैसे REGEXP_INSTR () मारियाडीबी में काम करता है

  4. मारियाडीबी में कॉलम के डेटा प्रकार की जांच करने के 4 तरीके

  5. MariaDB क्लस्टर के लिए maxctrl का उपयोग करके MaxScale प्रशासन का परिचय