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 | +--------+