आप इसे MySQL 8.0 में JSON_TABLE() के साथ कर सकते हैं। :
select r.res from mytable,
json_table(mytable.content, '$[*]' columns (res int path '$')) r
where mytable.id = 1
मैंने MySQL 8.0.17 पर परीक्षण किया, और यह आउटपुट है:
+------+
| res |
+------+
| 3 |
| 4 |
+------+
यदि आप MySQL 8.0 से पुराने संस्करण का उपयोग करते हैं, तो आपके पास ये विकल्प हैं:
- कुछ असंभव रूप से जटिल SQL समाधान खोजें। समस्या को हल करने का यह लगभग हमेशा गलत तरीका है, क्योंकि आप कोड के साथ समाप्त होते हैं जो बनाए रखने के लिए बहुत महंगा है।
- JSON सरणी को यथावत प्राप्त करें, और इसे एप्लिकेशन कोड में विस्फोटित करें।
- अपने डेटा को सामान्य करें ताकि JSON सरणियों का उपयोग करने के बजाय आपके पास प्रति पंक्ति एक मान हो।
मुझे अक्सर स्टैक ओवरफ्लो पर MySQL में JSON का उपयोग करने के बारे में प्रश्न मिलते हैं जो मुझे विश्वास दिलाते हैं कि इस सुविधा ने MySQL को बर्बाद कर दिया है। डेवलपर इसका गलत इस्तेमाल करते रहते हैं। उन्हें यह पसंद है कि इससे सम्मिलित करना . आसान हो जाता है अर्ध-संरचित डेटा, लेकिन वे पाते हैं कि यह पूछताछ . करता है वह डेटा बहुत जटिल है।