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

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

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

सिंटैक्स

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

JSON_TYPE(json_val)

जहां json_val वह मान है जिसके लिए प्रकार वापस करना है।

ऑब्जेक्ट प्रकार

संभावित वापसी प्रकार निम्न तालिका में सूचीबद्ध हैं:

रिटर्न प्रकार मान उदाहरण
ARRAY JSON सरणी। [1, 2, 3]
OBJECT JSON ऑब्जेक्ट। {"a":"1"}
BOOLEAN JSON सच/गलत शाब्दिक। true या false
DOUBLE एक संख्या जिसमें कम से कम एक फ्लोटिंग पॉइंट दशमलव होता है। 1.2
INTEGER एक फ्लोटिंग पॉइंट दशमलव के बिना एक संख्या। 1
NULL JSON NULL शाब्दिक। इसे एक स्ट्रिंग के रूप में लौटाया जाता है, और इसे SQL NULL . के साथ भ्रमित नहीं होना चाहिए मूल्य। NULL
STRING JSON स्ट्रिंग। "bird"

उदाहरण

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

SET @json = '
    { 
        "name" : "Fluffy", 
        "type" : "Cat" 
    }
';

SELECT JSON_TYPE(@json);

परिणाम:

+------------------+
| JSON_TYPE(@json) |
+------------------+
| OBJECT           |
+------------------+

इस उदाहरण में मैंने एक संपूर्ण JSON दस्तावेज़ पास किया है, जिसमें एक प्रकार का OBJECT . है ।

यहां और उदाहरण दिए गए हैं:

SELECT 
    JSON_TYPE('[1, 2, 3]'),
    JSON_TYPE('{ "a" : 1 }'),
    JSON_TYPE('true'),
    JSON_TYPE('false'),
    JSON_TYPE(10.59),
    JSON_TYPE(10),
    JSON_TYPE(null),
    JSON_TYPE('"Fuzzy Smith"');

परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):

    JSON_TYPE('[1, 2, 3]'): ARRAY
  JSON_TYPE('{ "a" : 1 }'): OBJECT
         JSON_TYPE('true'): BOOLEAN
        JSON_TYPE('false'): BOOLEAN
          JSON_TYPE(10.59): DOUBLE
             JSON_TYPE(10): INTEGER
           JSON_TYPE(null): NULL
JSON_TYPE('"Fuzzy Smith"'): STRING

JSON दस्तावेज़ से मान निकालें

पिछले उदाहरणों में, मैंने प्रत्येक मान को सीधे फ़ंक्शन में एक शाब्दिक के रूप में पास किया।

हम JSON_TYPE() combine को मिला सकते हैं अन्य कार्यों के साथ, जैसे JSON_EXTRACT() एक बड़े JSON दस्तावेज़ के भीतर किसी मान के प्रकार का पता लगाने के लिए। किसी JSON दस्तावेज़ के प्रकार का पता लगाने के लिए उसका मान निकालने का एक उदाहरण यहां दिया गया है:

SET @json = '
    { 
        "name" : "Wag", 
        "scores" : [8, 0, 9] 
    }
';

SELECT 
    JSON_TYPE(JSON_EXTRACT(@json, '$.name')) AS Result;

परिणाम:

+--------+
| Result |
+--------+
| STRING |
+--------+

यहां एक और उदाहरण दिया गया है जो अधिक प्रकार देता है:

SET @json = '
    { 
        "name" : "Wag", 
        "scores" : [8, 0, 9],
        "weight" : 10.50,
        "height" : null,
        "age" : 4
    }
';

SELECT 
    JSON_TYPE(
        JSON_EXTRACT(@json, '$.name')
        ) AS a,
    JSON_TYPE(
        JSON_EXTRACT(@json, '$.scores')
        ) AS b,
    JSON_TYPE(
        JSON_EXTRACT(@json, '$.scores[0]')
        ) AS c,
    JSON_TYPE(
        JSON_EXTRACT(@json, '$.weight')
        ) AS d,
    JSON_TYPE(
        JSON_EXTRACT(@json, '$.height')
        ) AS e,
    JSON_TYPE(
        JSON_EXTRACT(@json, '$.age')
        ) AS f;

परिणाम:

+--------+-------+---------+--------+------+---------+
| a      | b     | c       | d      | e    | f       |
+--------+-------+---------+--------+------+---------+
| STRING | ARRAY | INTEGER | DOUBLE | NULL | INTEGER |
+--------+-------+---------+--------+------+---------+

शून्य तर्क

यदि तर्क NULL है , फिर NULL लौटा दिया गया है।

SELECT JSON_TYPE(null);

परिणाम:

+-----------------+
| JSON_TYPE(null) |
+-----------------+
| NULL            |
+-----------------+

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

कॉलिंग JSON_TYPE() बिना तर्क के त्रुटि उत्पन्न होती है:

SELECT JSON_TYPE();

परिणाम:

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

बहुत सारे तर्क पारित होने पर भी ऐसा ही होता है:

SELECT JSON_TYPE(1, 2);

परिणाम:

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

  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. MySQL/MariaDB के लिए Azure डेटाबेस को ऑन-प्रेम सर्वर पर माइग्रेट करना

  3. मारियाडीबी JSON_QUERY () समझाया गया

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

  5. MySQL और MariaDB के लिए डिजास्टर रिकवरी प्लानिंग