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

MySQL से JSON डेटा कैसे प्राप्त करें?

चूंकि बहुत से लोगों ने मुझसे व्यक्तिगत रूप से यह प्रश्न पूछा है, मैंने सोचा कि मैं इस उत्तर को दूसरा संशोधन दूंगा। यहां एक सार है जिसमें सेलेक्ट, माइग्रेशन और व्यू क्रिएशन के साथ संपूर्ण SQL है और एक लाइव sql fiddle (बेला के लिए उपलब्धता की गारंटी नहीं)

मान लें कि आपके पास टेबल है (नाम:TBL_JSON) इस तरह:

 ID   CITY        POPULATION_JSON_DATA
-----------------------------------------------------------------------
 1    LONDON      {"male" : 2000, "female" : 3000, "other" : 600}
 2    NEW YORK    {"male" : 4000, "female" : 5000, "other" : 500}

प्रत्येक जेसन फ़ील्ड का चयन करने के लिए, आप यह कर सकते हैं:

SELECT 
    ID, CITY,
    json_extract(POPULATION_JSON_DATA, '$.male') AS POPL_MALE,
    json_extract(POPULATION_JSON_DATA, '$.female') AS POPL_FEMALE,
    json_extract(POPULATION_JSON_DATA, '$.other') AS POPL_OTHER
FROM TBL_JSON;

जिसके परिणाम:

ID  CITY      POPL_MALE  POPL_FEMALE   POPL_OTHER 
-----------------------------------------------------------------
1   LONDON    2000       3000          600
2   NEW YORK  4000       5000          500

यह आपके डेटा आकार और json जटिलता के आधार पर चलाने के लिए एक महंगा ऑपरेशन हो सकता है। मेरा सुझाव है कि

. के लिए इसका उपयोग करें
  1. डेटाबेस को विभाजित करने के लिए तालिका का स्थानांतरण (परिशिष्ट 2-बी को सार में देखें)
  2. कम से कम एक दृश्य बनाएं (परिशिष्ट 2-सी को सार में देखें)

इसके लिए देखें:आपके पास json हो सकता है दोहरे उद्धरणों से शुरू करना (स्ट्रिंगीफाइड):

"{"male" : 2000, "female" : 3000, "other" : 600}"

Ubuntu और Mac OSX Sierra पर Mysql 5.7 के साथ परीक्षण किया गया।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP/MYSQL में एक के रूप में दो mysql प्रश्नों को कैसे निष्पादित करें?

  2. जावा:MySQL में रेडीस्टेडमेंट के साथ कई पंक्तियाँ डालें

  3. MYSQL में एक सबक्वेरी में LIMIT कीवर्ड का उपयोग करने का विकल्प

  4. MySQL / MariaDB डेटाबेस के ऑटो इंक्रीमेंट वैल्यू को कैसे बदलें

  5. आप खंड से अद्यतन के लिए लक्ष्य तालिका निर्दिष्ट नहीं कर सकते हैं