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

MySQL JSON सरणी से अलग मान प्राप्त करें

नेक्रोमैंसिंग के लिए क्षमा करें, लेकिन मुझे इसी तरह की समस्या का सामना करना पड़ा है। समाधान है:JSON_TABLE() MySQL 8.0 के बाद से उपलब्ध है।

सबसे पहले, पंक्तियों में सरणियों को एक-पंक्ति एकल सरणी में मर्ज करें।

select concat('[',         -- start wrapping single array with opening bracket
    replace(
        replace(
            group_concat(vals),  -- group_concat arrays from rows
            ']', ''),            -- remove their opening brackets
        '[', ''),              -- remove their closing brackets
    ']') as json             -- finish wraping single array with closing bracket
from (
  select '[801, 751, 603, 753, 803]' as vals
  union select '[801, 751]'
  union select '[578, 66, 15]'
) as jsons;

# gives: [801, 751, 603, 753, 803, 801, 751, 578, 66, 15]

दूसरा, json_table का उपयोग करें सरणी को पंक्तियों में बदलने के लिए।

select val
from (
    select concat('[',
        replace(
            replace(
                group_concat(vals),
                ']', ''),
            '[', ''),
        ']') as json
    from (
      select '[801, 751, 603, 753, 803]' as vals
      union select '[801, 751]'
      union select '[578, 66, 15]'
    ) as jsons
) as merged
join json_table(
    merged.json,
    '$[*]' columns (val int path '$')
) as jt
group by val;

# gives...
801
751
603
753
803
578
66
15

देखें https://dev. mysql.com/doc/refman/8.0/hi/json-table-functions.html#function_json-table

नोटिस group by val विशिष्ट मूल्य प्राप्त करने के लिए। आप order भी कर सकते हैं उन्हें और सब कुछ...

या आप group_concat(distinct val) . का उपयोग कर सकते हैं group by . के बिना निर्देश (!) एक-पंक्ति परिणाम प्राप्त करने के लिए।

या यहां तक ​​कि cast(concat('[', group_concat(distinct val), ']') as json) एक उचित json सरणी प्राप्त करने के लिए:[15, 66, 578, 603, 751, 753, 801, 803]

मेरे MySQL को 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. उच्च उपलब्धता के लिए Percona XtraDB क्लस्टर 8 को कैसे परिनियोजित करें

  2. MySQLi का उपयोग करके PHP से MySQL संग्रहीत फ़ंक्शन को कॉल करते समय घातक त्रुटि

  3. MySQL पर टेक्स्ट के लिए SQLAlchemy किस कॉलम प्रकार का उपयोग करता है?

  4. GMT समय को EST . में बदलें

  5. जावा का उपयोग करके MySQL में वर्तमान समय कैसे सम्मिलित करें