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

JSON_LENGTH () - MySQL में JSON दस्तावेज़ की लंबाई लौटाएं

MySQL में, JSON_LENGTH() फ़ंक्शन JSON दस्तावेज़ की लंबाई लौटाता है।

जब आप इस फ़ंक्शन को कॉल करते हैं, तो आप JSON दस्तावेज़ को तर्क के रूप में प्रदान करते हैं। आप दस्तावेज़ के भीतर किसी मान की लंबाई वापस करने के लिए पथ तर्क भी प्रदान कर सकते हैं।

सिंटैक्स

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

JSON_LENGTH(json_doc[, path])

जहां json_doc JSON दस्तावेज़ है जिसके लिए गहराई, और path लौटाना है एक वैकल्पिक तर्क है जिसका उपयोग दस्तावेज़ के भीतर किसी मान की लंबाई वापस करने के लिए किया जा सकता है।

उदाहरण 1 - खाली वस्तु

यहाँ एक JSON दस्तावेज़ है जिसमें एक खाली वस्तु के अलावा कुछ नहीं है।

SELECT JSON_LENGTH('{}') 'Result';

परिणाम:

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

उदाहरण 2 - डेटा के साथ ऑब्जेक्ट

और अगर हम डेटा जोड़ते हैं तो यहां क्या होता है।

SELECT JSON_LENGTH('{"Name": "Homer"}') 'Result';

परिणाम:

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

यह देता है 1 क्योंकि वस्तु में एक सदस्य होता है। अगर हम दूसरा सदस्य जोड़ते हैं, तो यहां क्या होता है:

SELECT JSON_LENGTH('{"Name": "Homer", "Stupid": true}') 'Result';

परिणाम:

+--------+
| Result |
+--------+
|      2 |
+--------+

उदाहरण 3 - सरणी

किसी सरणी की लंबाई उसमें मौजूद तत्वों की संख्या होती है।

SELECT JSON_LENGTH('[1, 2, 3]') 'Result';

परिणाम:

+--------+
| Result |
+--------+
|      3 |
+--------+

यह सच है, भले ही तत्वों में से एक का अपना सरणी (या वस्तु) हो।

SELECT JSON_LENGTH('[1, 2, [3, 4]]') 'Result';

परिणाम:

+--------+
| Result |
+--------+
|      3 |
+--------+

उदाहरण 4 - पथ तर्क

हम एक वैकल्पिक path . प्रदान कर सकते हैं दस्तावेज़ के भीतर दिए गए पथ की लंबाई वापस करने का तर्क।

SET @data = '{  
    "Person": {    
       "Name": "Homer", 
       "Age": 39,
       "Hobbies": ["Eating", "Sleeping"]  
    }
 }';
SELECT JSON_LENGTH(@data, '$.Person') 'Result';

परिणाम:

+--------+
| Result |
+--------+
|      3 |
+--------+

इस मामले में हम Person . की लंबाई लौटाते हैं ऑब्जेक्ट, जिसमें तीन सदस्य होते हैं।

यदि हम इसे केवल उन सदस्यों में से एक तक सीमित कर दें (जैसे, Name सदस्य), हमें यह मिलता है:

SET @data = '{  
    "Person": {    
       "Name": "Homer", 
       "Age": 39,
       "Hobbies": ["Eating", "Sleeping"]  
    }
 }';
SELECT JSON_LENGTH(@data, '$.Person.Name') 'Result';

परिणाम:

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

लेकिन अगर हम इसे Hobbies . तक सीमित कर दें सरणी, हमें यह मिलता है:

SET @data = '{  
    "Person": {    
       "Name": "Homer", 
       "Age": 39,
       "Hobbies": ["Eating", "Sleeping"]  
    }
 }';
SELECT JSON_LENGTH(@data, '$.Person.Hobbies') 'Result';

परिणाम:

+--------+
| Result |
+--------+
|      2 |
+--------+

  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 डिलीमीटर के साथ संग्रहीत कार्यविधि सिंटैक्स बनाता है

  2. अपने MariaDB या MySQL डेटाबेस का भौतिक बैकअप बनाएं

  3. मैं mysql देशी json फ़ंक्शन का उपयोग करके नेस्टेड json ऑब्जेक्ट कैसे उत्पन्न करूं?

  4. PHP:चेतावनी:सॉर्ट () पैरामीटर 1 को सरणी, संसाधन दिए जाने की अपेक्षा करता है

  5. त्रुटि 1044 (42000):उपयोगकर्ता ''@'लोकलहोस्ट' के लिए डेटाबेस 'डीबी' तक पहुंच अस्वीकृत