MySQL में, JSON_KEYS()
फ़ंक्शन किसी JSON ऑब्जेक्ट के शीर्ष स्तर मान से कुंजी लौटाता है। कुंजियाँ JSON सरणी के रूप में लौटाई जाती हैं, या, यदि कोई path
. है तर्क दिया जाता है, चयनित पथ से शीर्ष-स्तरीय कुंजियाँ।
आप फ़ंक्शन के तर्क के रूप में JSON दस्तावेज़ प्रदान करते हैं।
आप यह निर्दिष्ट करने के लिए (वैकल्पिक रूप से) दूसरा तर्क भी प्रदान कर सकते हैं कि JSON दस्तावेज़ के भीतर "शीर्ष-स्तरीय" पथ कहाँ से शुरू होता है।
सिंटैक्स
वाक्य रचना इस प्रकार है:
JSON_KEYS(json_doc[, path])
जहां json_doc
JSON दस्तावेज़ है और path
यह निर्धारित करने के लिए एक वैकल्पिक तर्क है कि JSON दस्तावेज़ में "शीर्ष-स्तरीय" पथ कहाँ से शुरू होता है।
यदि चयनित ऑब्जेक्ट खाली है, तो परिणाम सरणी खाली है। यदि शीर्ष-स्तरीय मान में नेस्टेड सबऑब्जेक्ट्स हैं, तो रिटर्न वैल्यू में उन सबऑब्जेक्ट्स की कुंजियाँ शामिल नहीं हैं।
उदाहरण 1 - मूल उपयोग
प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है।
SELECT JSON_KEYS('{"a": 1, "b": 2, "c": 3}') AS 'Result';
परिणाम:
+-----------------+ | Result | +-----------------+ | ["a", "b", "c"] | +-----------------+
यहां एक और उदाहरण दिया गया है:
SELECT JSON_KEYS('{"Name": "Bart", "Age": 10}') AS 'Result';
परिणाम:
+-----------------+ | Result | +-----------------+ | ["Age", "Name"] | +-----------------+
उदाहरण 2 - एक पथ निर्दिष्ट करें
पथ निर्दिष्ट करने का एक उदाहरण यहां दिया गया है। यह हमें एक नेस्टेड ऑब्जेक्ट से कुंजियाँ प्राप्त करने की अनुमति देता है (बजाय पूरे JSON दस्तावेज़ के केवल शीर्ष-स्तरीय ऑब्जेक्ट तक सीमित होने के)।
SELECT JSON_KEYS('{"a": 1, "b": 2, "c": {"d": 3, "e": 4, "f": 5}}', '$.c') AS 'Result';
परिणाम:
+-----------------+ | Result | +-----------------+ | ["d", "e", "f"] | +-----------------+
उदाहरण 3 - अस्तित्वहीन पथ
यदि आप एक ऐसा पथ निर्दिष्ट करते हैं जो मौजूद नहीं है तो एक NULL मान वापस आ जाता है।
SELECT JSON_KEYS('{"a": 1, "b": 2, "c": {"d": 3, "e": 4, "f": 5}}', '$.z') AS 'Result';
परिणाम:
+--------+ | Result | +--------+ | NULL | +--------+
यदि कोई भी तर्क NULL
. है, तो आपको एक NULL मान भी मिलेगा या यदि पहला तर्क JSON ऑब्जेक्ट नहीं है।
उदाहरण 4 - सरणी
Arrays ऑब्जेक्ट नहीं हैं, और उनमें key/value जोड़े नहीं होते हैं। इसलिए, यदि आप किसी सरणी से कुंजियाँ वापस करने का प्रयास करते हैं, तो आपको एक NULL मान मिलेगा।
SELECT JSON_KEYS('[1, 2, 3]') AS 'Result';
परिणाम:
+--------+ | Result | +--------+ | NULL | +--------+
हालाँकि, यदि किसी सरणी के तत्वों में कोई वस्तु है, तो भी आप path
. का उपयोग कर सकते हैं उस वस्तु से कुंजी प्राप्त करने के लिए तर्क।
SELECT JSON_KEYS('[1, 2, {"a": 1, "b": 2}]', '$[2]') AS 'Result';
परिणाम:
+------------+ | Result | +------------+ | ["a", "b"] | +------------+
उदाहरण 5 - खाली वस्तुएं
यदि चयनित वस्तु खाली है, तो आपको एक खाली सरणी मिलेगी।
SELECT JSON_KEYS('{}') AS 'Result';
परिणाम:
+--------+ | Result | +--------+ | [] | +--------+