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

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

मारियाडीबी में, JSON_KEYS() एक अंतर्निहित फ़ंक्शन है जो JSON दस्तावेज़ से शीर्ष-स्तरीय कुंजियों की एक सरणी देता है। यदि कोई पथ प्रदान किया जाता है, तो वह उस पथ से शीर्ष-स्तरीय कुंजियाँ लौटाता है।

यह निर्दिष्ट स्तर में नेस्टेड उप-ऑब्जेक्ट्स की कुंजियों को बाहर करता है।

साथ ही, यदि चयनित ऑब्जेक्ट खाली है, तो एक खाली सरणी वापस कर दी जाती है।

सिंटैक्स

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

JSON_KEYS(json_doc[, path])

जहां json_doc JSON दस्तावेज़ है, और path दस्तावेज़ के भीतर एक पथ है।

उदाहरण

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

SET @json_document = '
    { 
        "name": "Wag", 
        "type": "Dog", 
        "weight": 20 
    }
';
SELECT JSON_KEYS(@json_document);

परिणाम:

+----------------------------+
| JSON_KEYS(@json_document)  |
+----------------------------+
| ["name", "type", "weight"] |
+----------------------------+

पथ निर्दिष्ट करना

दस्तावेज़ में पथ निर्दिष्ट करने का एक उदाहरण यहां दिया गया है:

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_KEYS(
    @json_document, 
    '$.details'
    ) AS Result;

परिणाम:

+------------------------------+
| Result                       |
+------------------------------+
| ["type", "weight", "awards"] |
+------------------------------+

जैसा कि उल्लेख किया गया है, उप-वस्तुओं को परिणाम से बाहर रखा गया है।

गैर-मौजूद पथ

एक पथ पास करना जो JSON दस्तावेज़ में मौजूद नहीं है NULL . में परिणाम देता है ।

उदाहरण:

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_KEYS(
    @json_document, 
    '$.wrong'
    ) AS Result;

परिणाम:

+--------+
| Result |
+--------+
| NULL   |
+--------+

खाली वस्तुएं

यदि चयनित ऑब्जेक्ट खाली है, तो एक खाली सरणी लौटा दी जाती है:

SELECT JSON_KEYS('{}');

परिणाम:

+-----------------+
| JSON_KEYS('{}') |
+-----------------+
| []              |
+-----------------+

अशक्त तर्क

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

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

परिणाम:

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

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

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

SELECT JSON_KEYS();

परिणाम:

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

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

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

परिणाम:

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

  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 के लिए 6 सामान्य विफलता परिदृश्य, और उन्हें कैसे ठीक करें

  2. SQL की शक्ति और प्रक्रियात्मक कथनों को MariaDB के Oracle संगतता मोड के साथ संयोजित करना

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

  4. MySQL गैलेरा क्लस्टर और ग्लस्टरएफएस के साथ अत्यधिक उपलब्ध नेक्स्टक्लाउड को तैनात करना

  5. मारियाडीबी में TRIM () और TRIM_ORACLE () के बीच अंतर