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

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

मारियाडीबी में, JSON_EXISTS() एक अंतर्निहित फ़ंक्शन है जो आपको यह जांचने की अनुमति देता है कि JSON दस्तावेज़ में निर्दिष्ट पथ पर कोई मान मौजूद है या नहीं।

यह JSON दस्तावेज़ को एक तर्क के रूप में स्वीकार करता है, और 1 . लौटाता है यदि पथ मिल जाता है, और 0 अगर ऐसा नहीं है।

मारियाडीबी दस्तावेज में कहा गया है कि फ़ंक्शन "यह निर्धारित करता है कि दिए गए डेटा में एक निर्दिष्ट JSON मान मौजूद है या नहीं"। हालांकि, फ़ंक्शन वास्तव में किसी दिए गए मान की जांच करने के लिए प्रकट नहीं होता है। यह कहना शायद अधिक सटीक है कि यह निर्धारित करता है कि निर्दिष्ट पथ . है या नहीं मौजूद है, या मान निर्दिष्ट पथ पर मौजूद है।

यह जाँचने के लिए कि वास्तविक मान मौजूद है, आप JSON_CONTAINS() . का उपयोग कर सकते हैं समारोह।

सिंटैक्स

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

JSON_EXISTS(json_doc, path)

जहां json_doc JSON दस्तावेज़ है और path खोजने का मार्ग है।

उदाहरण

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

SELECT JSON_EXISTS('{ "name": "Wag" }', '$.name');

परिणाम:

+--------------------------------------------+
| JSON_EXISTS('{ "name": "Wag" }', '$.name') |
+--------------------------------------------+
|                                          1 |
+--------------------------------------------+

इस स्थिति में, पथ मिल जाता है और परिणाम 1 . होता है ।

यदि पथ नहीं मिलता है, तो परिणाम 0 है , इस तरह:

SELECT JSON_EXISTS('{ "name": "Wag" }', '$.type');

परिणाम:

+--------------------------------------------+
| JSON_EXISTS('{ "name": "Wag" }', '$.type') |
+--------------------------------------------+
|                                          0 |
+--------------------------------------------+

सरणी

इस उदाहरण में, मैं किसी सरणी के दिए गए अनुक्रमणिका में किसी तत्व के अस्तित्व की जांच करता हूं:

SELECT JSON_EXISTS(
    '{ 
        "name": "Wag", 
        "scores": [ 10, 8, 7 ] 
    }', 
    "$.scores[2]"
    ) AS Result;

परिणाम:

+--------+
| Result |
+--------+
|      1 |
+--------+

अगर इंडेक्स ऐरे में मौजूद नहीं है, तो यहां बताया गया है:

SELECT JSON_EXISTS(
    '{ 
        "name": "Wag", 
        "scores": [ 10, 8, 7 ] 
    }', 
    '$.scores[3]'
    ) AS Result;

परिणाम:

+--------+
| Result |
+--------+
|      0 |
+--------+

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

यहां एक उदाहरण दिया गया है जो थोड़े बड़े JSON दस्तावेज़ का उपयोग करता है। यहां, मैं एक कुंजी की जांच करता हूं जो नेस्टिंग के कई स्तरों में मौजूद है:

SET @json_document = '
    { 
        "_id" : 1, 
        "name" : "Wag", 
        "details" : {
            "type" : "Dog", 
            "weight" : 20,
            "awards" : { 
                "Florida Dog Awards" : "Top Dog", 
                "New York Marathon" : "Fastest Dog", 
                "Sumo 2020" : "Biggest Dog"
            }
        }
    }
';
SELECT JSON_EXISTS(
    @json_document, 
    '$.details.awards.Sumo 2020'
    ) AS Result;

परिणाम:

+--------+
| Result |
+--------+
|      1 |
+--------+

अशक्त तर्क

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

SELECT 
    JSON_EXISTS(null, '$.a'),
    JSON_EXISTS('{ "a": 1 }', null);

परिणाम:

+--------------------------+---------------------------------+
| JSON_EXISTS(null, '$.a') | JSON_EXISTS('{ "a": 1 }', null) |
+--------------------------+---------------------------------+
|                     NULL |                            NULL |
+--------------------------+---------------------------------+

अमान्य JSON

NULL में अमान्य JSON परिणाम पास करना :

SELECT JSON_EXISTS('{1}', '$.a');

परिणाम:

+---------------------------+
| JSON_EXISTS('{1}', '$.a') |
+---------------------------+
|                      NULL |
+---------------------------+

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

तर्क न देने से त्रुटि होती है:

SELECT JSON_EXISTS();

परिणाम:

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

जब आप बहुत अधिक तर्क देते हैं तो ऐसा ही होता है:

SELECT JSON_EXISTS('{"a": 1}', '$.a', 3);

परिणाम:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मारियाडीबी में ATAN2 () कैसे काम करता है

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

  3. 4 कार्य जो मारियाडीबी में एक समय मान से सेकेंड पार्ट लौटाते हैं

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

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