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 सरणी में एकत्रित करने की अनुमति देता है।