MySQL प्रक्रिया में सभी मानों के माध्यम से एक स्ट्रिंग और लूप को विभाजित करने के लिए, आपको REPLACE () फ़ंक्शन का उपयोग करने की आवश्यकता नहीं है। समझने के लिए, पहले एक संग्रहित प्रक्रिया बनाएं और उसके बाद एक तालिका बनाएं और संग्रहीत प्रक्रिया को कुछ मानों के साथ कॉल करें। मान तालिका में डाला जाएगा।
संग्रहीत कार्यविधि बनाने की क्वेरी इस प्रकार है:
mysql> DELIMITER //mysql> क्रिएट प्रोसेस SP_SplitString(Value longtext) -> BEGIN -> DECLARE फ्रंट टेक्स्ट डिफॉल्ट न्यूल; -> डिक्लेयर फ्रंटलेन INT डिफॉल्ट न्यूल; -> TempValue टेक्स्ट डिफॉल्ट न्यूल घोषित करें; -> पुनरावर्तक:-> लूप -> यदि लंबाई (ट्रिम (मान)) =0 या मान शून्य है -> इटरेटर छोड़ दें; -> अंत अगर; -> सामने सेट करें =SUBSTRING_INDEX (मान, ',', 1); -> सेट फ्रंटलेन =लंबाई (सामने); -> सेट TempValue =TRIM (सामने); -> INSERT INTO store (allValues) VALUES (TempValue); -> सेट वैल्यू =INSERT (वैल्यू, 1, फ्रंटलेन + 1, ''); -> अंत लूप; -> END // क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित हुई हैं (0.22 सेकंड)mysql> DELIMITER;
अब एक टेबल बनाएं जो संग्रहीत प्रक्रिया के मूल्य को संग्रहीत करता है। तालिका बनाने के लिए क्वेरी।
mysql> CREATE TABLE store(->Id int NOT NULL AUTO_INCREMENT, -> allValues varchar(30), -> PRIMARY KEY(Id) -> );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.63 सेकंड)
तालिका से सभी रिकॉर्ड प्रदर्शित करें। क्वेरी इस प्रकार है:
mysql> स्टोर से *चुनें;खाली सेट (0.00 सेकेंड)
प्रारंभ में हमारे पास तालिका में कोई रिकॉर्ड नहीं है। कॉल कमांड का उपयोग करके संग्रहीत प्रक्रिया को कॉल करें। क्वेरी इस प्रकार है:
mysql> SP_SplitString ('हाय, हैलो, गुड मॉर्निंग, अलविदा') को कॉल करें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (1.02 सेकंड)
उपरोक्त संग्रहीत कार्यविधि को कॉल करने के बाद, आइए एक बार फिर से तालिका रिकॉर्ड की जाँच करें। तालिका से सभी रिकॉर्ड प्रदर्शित करने की क्वेरी इस प्रकार है:
mysql> स्टोर से *चुनें;
निम्न आउटपुट है:
<पूर्व>+----+--------------+| आईडी | सभी मूल्य |+----+--------------+| 1 | नमस्ते || 2 | नमस्ते || 3 | सुप्रभात || 4 | अलविदा |+----+--------------+4 पंक्तियाँ सेट में (0.00 सेकंड)