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

JSON_OBJECTAGG () - MySQL में क्वेरी परिणामों से JSON ऑब्जेक्ट बनाएं

MySQL में JSON_OBJECTAGG() called नामक एक समग्र फ़ंक्शन शामिल है . यह फ़ंक्शन आपको कुंजी-मान जोड़े वाले JSON ऑब्जेक्ट बनाने में सक्षम बनाता है। अधिक विशेष रूप से, यह आपको किसी क्वेरी के परिणामों के आधार पर यह JSON ऑब्जेक्ट बनाने देता है।

यह दो तर्कों को स्वीकार करता है, इनमें से पहला कुंजी के रूप में और दूसरा मान के रूप में उपयोग किया जाता है। ये तर्क स्तंभ नाम या भाव हो सकते हैं।

सिंटैक्स

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

JSON_OBJECTAGG(key, value)

जहां key वह स्तंभ या व्यंजक है जो कुंजी . का प्रतिनिधित्व करता है कुंजी/मान युग्म का, और value वह स्तंभ या व्यंजक है जो मान . का प्रतिनिधित्व करता है कुंजी/मान युग्म का।

उदाहरण

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

यहां एक सामान्य क्वेरी है जिसे हम बिना चला सकते हैं JSON_OBJECTAGG() समारोह:

SELECT 
  District AS 'State',
  Name AS 'City',
  Population
FROM City
WHERE CountryCode = 'AUS'
ORDER BY State;

परिणाम:

+-----------------+---------------+------------+
| State           | City          | Population |
+-----------------+---------------+------------+
| Capital Region  | Canberra      |     322723 |
| New South Wales | Sydney        |    3276207 |
| New South Wales | Newcastle     |     270324 |
| New South Wales | Central Coast |     227657 |
| New South Wales | Wollongong    |     219761 |
| Queensland      | Brisbane      |    1291117 |
| Queensland      | Gold Coast    |     311932 |
| Queensland      | Townsville    |     109914 |
| Queensland      | Cairns        |      92273 |
| South Australia | Adelaide      |     978100 |
| Tasmania        | Hobart        |     126118 |
| Victoria        | Melbourne     |    2865329 |
| Victoria        | Geelong       |     125382 |
| West Australia  | Perth         |    1096829 |
+-----------------+---------------+------------+

हम उस क्वेरी को समायोजित कर सकते हैं, ताकि Name कॉलम (इस उदाहरण में हमने इस कॉलम को City . का उपनाम दिया है ) एक कुंजी बन जाता है, और Population कॉलम एक मान बन जाता है।

हम GROUP BY . का भी उपयोग करते हैं District . द्वारा परिणामों को समूहबद्ध करने के लिए क्लॉज कॉलम (इस मामले में, हमने इस कॉलम के लिए State . नामक एक उपनाम बनाया है )।

SELECT 
  District AS 'State',
  JSON_OBJECTAGG(Name, Population) AS 'City/Population'
FROM City
WHERE CountryCode = 'AUS'
GROUP BY State;

परिणाम:

+-----------------+-----------------------------------------------------------------------------------------+
| State           | City/Population                                                                         |
+-----------------+-----------------------------------------------------------------------------------------+
| Capital Region  | {"Canberra": 322723}                                                                    |
| New South Wales | {"Sydney": 3276207, "Newcastle": 270324, "Wollongong": 219761, "Central Coast": 227657} |
| Queensland      | {"Cairns": 92273, "Brisbane": 1291117, "Gold Coast": 311932, "Townsville": 109914}      |
| South Australia | {"Adelaide": 978100}                                                                    |
| Tasmania        | {"Hobart": 126118}                                                                      |
| Victoria        | {"Geelong": 125382, "Melbourne": 2865329}                                               |
| West Australia  | {"Perth": 1096829}                                                                      |
+-----------------+-----------------------------------------------------------------------------------------+

इस मामले में हमने शहरों को उनके राज्य/जिले के आधार पर वर्गीकृत किया है। हालांकि, अगर हम सिर्फ एक बड़ा JSON ऑब्जेक्ट चाहते हैं जिसमें उस देश के सभी शहर/आबादी हों, तो हम राज्य/जिले (और इससे जुड़े GROUP BY को हटा सकते हैं। क्लॉज) पूरी तरह से क्वेरी से।

SELECT
  JSON_OBJECTAGG(Name, Population) AS 'City/Population'
FROM City
WHERE CountryCode = 'AUS';

परिणाम:

+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| City/Population                                                                                                                                                                                                                                                                                |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| {"Perth": 1096829, "Cairns": 92273, "Hobart": 126118, "Sydney": 3276207, "Geelong": 125382, "Adelaide": 978100, "Brisbane": 1291117, "Canberra": 322723, "Melbourne": 2865329, "Newcastle": 270324, "Gold Coast": 311932, "Townsville": 109914, "Wollongong": 219761, "Central Coast": 227657} |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

JSON_ARRAYAGG() भी देखें फ़ंक्शन जो आपको अपने क्वेरी परिणामों को JSON सरणी में एकत्रित करने की अनुमति देता है।


  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. mysql रूट पासवर्ड भूल गया

  3. MySQL कार्यक्षेत्र

  4. मैं अपने कोड को और अधिक सुरक्षित बनाने के लिए पीडीओ के साथ पासवर्ड हैशिंग का उपयोग कैसे करूं?

  5. प्रति श्रेणी नवीनतम चार आइटम कैसे चुनें?