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

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

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

सिंटैक्स

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

JSON_VALUE(json_doc, path)

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

उदाहरण

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

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

परिणाम:

+--------------------------------------+
| JSON_VALUE(@json_document, '$.name') |
+--------------------------------------+
| Wag                                  |
+--------------------------------------+

गैर-मौजूद पथ

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

उदाहरण:

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

परिणाम:

+---------------------------------------+
| JSON_VALUE(@json_document, '$.color') |
+---------------------------------------+
| NULL                                  |
+---------------------------------------+

सरणी

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

SET @json_document = '
    { 
        "_id" : 1, 
        "awards" : [ "Top Dog", "Best Dog", "Biggest Dog" ] 
    }
';
SELECT JSON_VALUE(@json_document, '$.awards[1]');

परिणाम:

+-------------------------------------------+
| JSON_VALUE(@json_document, '$.awards[1]') |
+-------------------------------------------+
| Best Dog                                  |
+-------------------------------------------+

एरेज़ शून्य-आधारित हैं, और इसलिए $.awards[1] awards का दूसरा तत्व निकालता है सरणी।

नेस्टेड ऑब्जेक्ट

किसी अन्य ऑब्जेक्ट के अंदर नेस्टेड ऑब्जेक्ट से मान प्राप्त करने का एक उदाहरण यहां दिया गया है:

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_VALUE(
    @json_document, 
    '$.details.awards.Florida Dog Awards'
    ) AS Result;

परिणाम:

+---------+
| Result  |
+---------+
| Top Dog |
+---------+

नॉनस्केलर मान

एक गैर-अंकीय मान (जैसे कोई वस्तु या एक सरणी) वापस करने का प्रयास 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_VALUE(
    @json_document, 
    '$.details.awards'
    ) AS Result;

परिणाम:

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

एक गैर-स्केलर मान वापस करने के लिए, JSON_QUERY() . का उपयोग करें फ़ंक्शन या JSON_EXTRACT() समारोह।

अशक्त तर्क

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

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

परिणाम:

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

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

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

SELECT JSON_VALUE();

परिणाम:

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

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

SELECT JSON_VALUE('{ "a": 1}');

परिणाम:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मारियाडीबी में उपलब्ध दिनांक और समय स्थान

  2. मारियाडीबी के लिए आराम से डेटा के लिए एन्क्रिप्शन पर विचार

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

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

  5. MySQL प्रतिकृति का उपयोग करके भू-वितरित डेटाबेस क्लस्टर की स्थापना