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

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

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

सिंटैक्स

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

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

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

उदाहरण

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

SELECT JSON_ARRAY_INSERT('[0, 1, 2]', '$[1]', 3);

परिणाम:

+-------------------------------------------+
| JSON_ARRAY_INSERT('[0, 1, 2]', '$[1]', 3) |
+-------------------------------------------+
| [0, 3, 1, 2]                              |
+-------------------------------------------+

इस मामले में, मान 3 सरणी में स्थिति 1 . पर डाला गया था . सरणी शून्य आधारित हैं, इसलिए यह सरणी में दूसरा तत्व बन जाता है।

एकाधिक मान डालें

आप JSON_ARRAY_INSERT() में एक ही कॉल में कई मान सम्मिलित कर सकते हैं .

उदाहरण:

SELECT JSON_ARRAY_INSERT('[0, 1, 2]', '$[0]', 4, '$[2]', 5);

परिणाम:

+------------------------------------------------------+
| JSON_ARRAY_INSERT('[0, 1, 2]', '$[0]', 4, '$[2]', 5) |
+------------------------------------------------------+
| [4, 0, 5, 1, 2]                                      |
+------------------------------------------------------+

मूल्यांकन बाएं से दाएं किया जाता है।

अगर हम path स्विच करते हैं तो यहां क्या होता है? /value चारों ओर तर्क:

SELECT JSON_ARRAY_INSERT('[0, 1, 2]', '$[2]', 5, '$[0]', 4);

परिणाम:

+------------------------------------------------------+
| JSON_ARRAY_INSERT('[0, 1, 2]', '$[2]', 5, '$[0]', 4) |
+------------------------------------------------------+
| [4, 0, 1, 5, 2]                                      |
+------------------------------------------------------+

एकाधिक सरणी

आप JSON_ARRAY_INSERT() पर एक ही कॉल में एक से अधिक सरणी में मान सम्मिलित कर सकते हैं ।

उदाहरण:

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

SELECT JSON_ARRAY_INSERT(@json_doc, '$.a[1]', 4, '$.b[2]', 5);

परिणाम:

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

नेस्टेड सरणी

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

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

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

परिणाम:

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

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

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

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

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

परिणाम:

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

अशक्त तर्क

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

SELECT JSON_ARRAY_INSERT(null, '$[1]', 4);

परिणाम:

+------------------------------------+
| JSON_ARRAY_INSERT(null, '$[1]', 4) |
+------------------------------------+
| NULL                               |
+------------------------------------+

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

SELECT JSON_ARRAY_INSERT('[0, 1, 2, 3]', null, 4);

परिणाम:

+--------------------------------------------+
| JSON_ARRAY_INSERT('[0, 1, 2, 3]', null, 4) |
+--------------------------------------------+
| NULL                                       |
+--------------------------------------------+

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

SELECT JSON_ARRAY_INSERT('[0, 1, 2]', '$[1]', null);

परिणाम:

+----------------------------------------------+
| JSON_ARRAY_INSERT('[0, 1, 2]', '$[1]', null) |
+----------------------------------------------+
| [0, null, 1, 2]                              |
+----------------------------------------------+

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मारियाडीबी में JSON ऐरे से तत्वों को कैसे लौटाएं?

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

  3. MySQL स्टोरेज इंजन ऑप्टिमाइज़ेशन:उच्च प्रदर्शन के लिए InnoDB ऑप्टिमाइज़ेशन को कॉन्फ़िगर करना

  4. मारियाडीबी में ईएलटी () कैसे काम करता है

  5. स्ट्रीमिंग प्रतिकृति और मारियाडीबी 10.4 . के साथ बड़े लेनदेन को संभालना