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

JSON_KEYS () - MySQL में JSON ऑब्जेक्ट से कुंजियाँ लौटाएँ

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL क्वेरी के परिणाम मेरे अपेक्षित क्रम में वापस क्यों नहीं आते हैं?

  2. MySQL PDO क्वेरी के लिए बाइंडपरम में LIKE का उपयोग करना

  3. MySQL निश्चित समस्याओं का निवारण कैसे करें

  4. सप्ताह की संख्या को तिथि में कैसे बदलें?

  5. CentOS 7 पर MySQL कैसे स्थापित करें?