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

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

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

सिंटैक्स

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

JSON_ARRAY_APPEND(json_doc, path, value[, path, value] ...)

जहां json_doc JSON दस्तावेज़ है, path वह पथ है जहां आप मान/एस, और value जोड़ना चाहते हैं संलग्न करने का मूल्य है।

उदाहरण

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

SET @json_doc = '[0, 1, 2, 3]';

SELECT JSON_ARRAY_APPEND(@json_doc, '$', 4);

परिणाम:

+--------------------------------------+
| JSON_ARRAY_APPEND(@json_doc, '$', 4) |
+--------------------------------------+
| [0, 1, 2, 3, 4]                      |
+--------------------------------------+

इस मामले में, मान 4 सरणी के अंत में जोड़ा गया था।

एकाधिक मान जोड़ें

आप JSON_ARRAY_APPEND() में एक ही कॉल में कई मान जोड़ सकते हैं .

उदाहरण:

SET @json_doc = '[0, 1, 2, 3]';

SELECT JSON_ARRAY_APPEND(@json_doc, '$', 4, '$', 5);

परिणाम:

+----------------------------------------------+
| JSON_ARRAY_APPEND(@json_doc, '$', 4, '$', 5) |
+----------------------------------------------+
| [0, 1, 2, 3, 4, 5]                           |
+----------------------------------------------+

एकाधिक सरणी

आप JSON_ARRAY_APPEND() पर एक ही कॉल में एक से अधिक सरणी में मान जोड़ सकते हैं ।

उदाहरण:

SET @json_doc = '{"a": [0, 1], "b": [2, 3]}';

SELECT JSON_ARRAY_APPEND(@json_doc, '$.a', 4, '$.b', 5);

परिणाम:

+--------------------------------------------------+
| JSON_ARRAY_APPEND(@json_doc, '$.a', 4, '$.b', 5) |
+--------------------------------------------------+
| {"a": [0, 1, 4], "b": [2, 3, 5]}                 |
+--------------------------------------------------+

नेस्टेड सरणी

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

SET @json_doc = '[0, 1, [2, 3]]';

SELECT JSON_ARRAY_APPEND(@json_doc, '$[2]', 4);

परिणाम:

+-----------------------------------------+
| JSON_ARRAY_APPEND(@json_doc, '$[2]', 4) |
+-----------------------------------------+
| [0, 1, [2, 3, 4]]                       |
+-----------------------------------------+

और निम्नलिखित उदाहरण में, मूल JSON दस्तावेज़ में नेस्टेड सरणी नहीं है, लेकिन JSON_ARRAY_APPEND() है हमारे पथ के आधार पर एक नेस्टेड सरणी बनाता है:

SET @json_doc = '[0, 1, 2, 3]';

SELECT JSON_ARRAY_APPEND(@json_doc, '$[3]', 4);

परिणाम:

+-----------------------------------------+
| JSON_ARRAY_APPEND(@json_doc, '$[3]', 4) |
+-----------------------------------------+
| [0, 1, 2, [3, 4]]                       |
+-----------------------------------------+

बड़ा JSON दस्तावेज़

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

मैं JSON_DETAILED() का भी उपयोग करता हूं परिणाम को सुंदर बनाने के लिए:

SET @json_doc = '{  
    "pet": {    
       "name": "Fluffy", 
       "diet": ["Fish", "Chicken"]  
    }
 }';
SELECT JSON_DETAILED(
        JSON_ARRAY_APPEND(
            @json_doc, 
            '$.pet.diet', 
            'Water')
);

परिणाम:

{
    "pet": 
    {
        "name": "Fluffy",
        "diet": 
        [
            "Fish",
            "Chicken",
            "Water"
        ]
    }
}

और यहाँ एक नेस्टेड सरणी बनाता है:

SET @json_doc = '{  
    "pet": {    
       "name": "Scratch", 
       "diet": ["Beef", "Water"]
    }
 }';
SELECT JSON_DETAILED(
        JSON_ARRAY_APPEND(
            @json_doc, 
            '$.pet.diet[1]', 
            'Beer')
);

परिणाम:

{
    "pet": 
    {
        "name": "Scratch",
        "diet": 
        [
            "Beef",
            
            [
                "Water",
                "Beer"
            ]
        ]
    }
}

अशक्त तर्क

यदि पहला तर्क NULL है , परिणाम NULL . है :

SELECT JSON_ARRAY_APPEND(null, '$', 4);

परिणाम:

+---------------------------------+
| JSON_ARRAY_APPEND(null, '$', 4) |
+---------------------------------+
| NULL                            |
+---------------------------------+

वही path . पर लागू होता है तर्क:

SET @json_doc = '[0, 1, 2, 3]';

SELECT JSON_ARRAY_APPEND(@json_doc, null, 4);

परिणाम:

+---------------------------------------+
| JSON_ARRAY_APPEND(@json_doc, null, 4) |
+---------------------------------------+
| NULL                                  |
+---------------------------------------+

हालांकि, अगर value तर्क NULL है , फिर NULL सरणी में जोड़ा जाता है:

SET @json_doc = '[0, 1, 2, 3]';

SELECT JSON_ARRAY_APPEND(@json_doc, '$', null);

परिणाम:

+-----------------------------------------+
| JSON_ARRAY_APPEND(@json_doc, '$', null) |
+-----------------------------------------+
| [0, 1, 2, 3, null]                      |
+-----------------------------------------+

आप JSON_ARRAY_INSERT() . का भी उपयोग कर सकते हैं किसी सरणी में मान डालने के लिए।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ClusterControl में ProxySQL क्लस्टरिंग का अवलोकन

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

  3. SQL फ़ायरवॉल को ClusterControl और ProxySQL के साथ आसान बनाया गया है

  4. MySQL Enterprise से MariaDB 10.3 . में माइग्रेट करना

  5. प्रॉक्सीएसक्यूएल और एडब्ल्यूएस ऑरोरा के साथ डेटाबेस लोड संतुलन