इसे एक स्ट्रिंग चलना कहा जाता है . यहां दिए गए विनिर्देशों के साथ आप इसे कैसे कर सकते हैं इसका एक उदाहरण यहां दिया गया है:
आपको एक तालिका बनानी होगी जिसमें फ़ील्ड की लंबाई के रूप में कई पूर्णांक हों + 1. इसलिए यदि फ़ील्ड की लंबाई 255 है, तो आपको 256 रिकॉर्ड की आवश्यकता होगी जिसमें केवल 0-255 से एक ही संख्या हो।
int_table
:
+---+
| i |
+---+
| 0 |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
+---+
इसके बाद, आपको एक क्वेरी की आवश्यकता होगी जो इस तालिका से जुड़ती है और जांचती है कि उस स्थान पर अल्पविराम मौजूद है या नहीं। (मैंने आपकी तालिका को legacy_table
कहा है फ़ील्ड के साथ client
और items
, क्रमशः।)
select
legacy_table.client,
substring(
legacy_table.items,
int_table.i + 1,
if(
locate(',', legacy_table.items, int_table.i + 1) = 0,
length(legacy_table.items) + 1,
locate(',', legacy_table.items, int_table.i + 1)
) - (int_table.i + 1)
) as item
from legacy_table, int_table
where legacy_table.client = 'xyz001'
and int_table.i < length(legacy_table.items)
and (
(int_table.i = 0)
or (substring(legacy_table.items, int_table.i, 1) = ',')
)
हो सकता है कि यह आपके लिए वास्तव में इसका उपयोग करने के लिए पर्याप्त कुशल न हो, लेकिन मैंने सोचा कि मैं इसे एक उदाहरण के रूप में प्रस्तुत करूंगा ताकि आप जान सकें कि क्या उपलब्ध है।