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

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

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

यह JSON दस्तावेज़ को एक तर्क के रूप में स्वीकार करता है, और दस्तावेज़ की अधिकतम गहराई लौटाता है।

सिंटैक्स

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

JSON_DEPTH(json_doc)

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

उदाहरण

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

SELECT JSON_DEPTH('{ "name": "Wag" }');

परिणाम:

+---------------------------------+
| JSON_DEPTH('{ "name": "Wag" }') |
+---------------------------------+
|                               2 |
+---------------------------------+

इस मामले में, गहराई 2 . है ।

स्केलर मान और खाली ऑब्जेक्ट/सरणी

स्केलर मान या खाली सरणियों या वस्तुओं की गहराई 1 . होती है :

SELECT 
    JSON_DEPTH('{}'),
    JSON_DEPTH('[]'),
    JSON_DEPTH(1);

परिणाम:

+------------------+------------------+---------------+
| JSON_DEPTH('{}') | JSON_DEPTH('[]') | JSON_DEPTH(1) |
+------------------+------------------+---------------+
|                1 |                1 |             1 |
+------------------+------------------+---------------+

गहरा JSON दस्तावेज़

यहां एक उदाहरण दिया गया है जो 4 . की गहराई वाले 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_DEPTH(@json_document);

परिणाम:

+----------------------------+
| JSON_DEPTH(@json_document) |
+----------------------------+
|                          4 |
+----------------------------+

अशक्त तर्क

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

SELECT JSON_DEPTH(null);

परिणाम:

+------------------+
| JSON_DEPTH(null) |
+------------------+
|             NULL |
+------------------+

अमान्य JSON

NULL में अमान्य JSON परिणाम पास करना चेतावनी के साथ:

SELECT JSON_DEPTH('{1}');

परिणाम:

+-------------------+
| JSON_DEPTH('{1}') |
+-------------------+
|              NULL |
+-------------------+
1 row in set, 1 warning (0.000 sec)

आइए देखें चेतावनी:

SHOW WARNINGS;

परिणाम:

+---------+------+--------------------------------------------------------------------------------+
| Level   | Code | Message                                                                        |
+---------+------+--------------------------------------------------------------------------------+
| Warning | 4038 | Syntax error in JSON text in argument 1 to function 'json_depth' at position 2 |
+---------+------+--------------------------------------------------------------------------------+

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

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

SELECT JSON_DEPTH();

परिणाम:

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

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

SELECT JSON_DEPTH('{"a": 1}', 2);

परिणाम:

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

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

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

  3. मारियाडीबी को छोड़कर ऑपरेटर ने समझाया

  4. मारियाडीबी JSON_EXTRACT () समझाया गया

  5. एडब्ल्यूएस आरडीएस:मारियाडीबी 10.2 का उपयोग करते हुए "एसक्यूएलएसटीएटी [22001] - कॉलम के लिए डेटा बहुत लंबा"