MySQL-এ একক কলামে কমা-বিচ্ছিন্ন মান থাকলে, নির্দিষ্ট মান খুঁজে সেটি রিপ্লেস করতে SUBSTRING_INDEX() এবং CONCAT() ফাংশন কম্বাইন করে ব্যবহার করা হয়।
উদাহরণ
১. টেবিল তৈরি করুন
mysql> CREATE TABLE DemoTable (
-> ListOfName TEXT
-> );
২. কমা-বিচ্ছিন্ন নামের তালিকা ইনসার্ট করুন
mysql> INSERT INTO DemoTable VALUES('Carol,Sam,John,David,Bob,Mike,Robert,John,Chris,James,Jace');
৩. রেকর্ড দেখুন
mysql> SELECT * FROM DemoTable;
আউটপুট:
+------------------------------------------------------------+
| ListOfName |
+------------------------------------------------------------+
| Carol,Sam,John,David,Bob,Mike,Robert,John,Chris,James,Jace |
+------------------------------------------------------------+
৪. দ্বিতীয় 'John' কে 'Adam' দিয়ে রিপ্লেস করুন
mysql> UPDATE DemoTable
-> SET ListOfName = CONCAT(
-> SUBSTRING_INDEX(ListOfName, 'John', 2),
-> 'Adam',
-> SUBSTRING_INDEX(ListOfName, 'John', -1)
-> );
৫. আপডেট হওয়া রেকর্ড দেখুন
mysql> SELECT * FROM DemoTable;
আউটপুট:
+------------------------------------------------------------+
| ListOfName |
+------------------------------------------------------------+
| Carol,Sam,John,David,Bob,Mike,Robert,Adam,Chris,James,Jace |
+------------------------------------------------------------+
ব্যাখ্যা:
SUBSTRING_INDEX(str, delim, count):countপজিটিভ হলে বাম পাশ, নেগেটিভ হলে ডান পাশের অংশ রিটার্ন করে।SUBSTRING_INDEX(ListOfName, 'John', 2)- দ্বিতীয় 'John' পর্যন্ত (সহ) বাম অংশ।SUBSTRING_INDEX(ListOfName, 'John', -1)- শেষ 'John' এর পরের ডান অংশ।- দুটি অংশের মাঝপথে 'Adam' কনক্যাট করা হয়েছে।
সতর্কতা: এই পদ্ধতি নির্দিষ্ট অকার্ডেন্সের জন্য কাজ করে। জেনারিক রিপ্লেসমেন্টের জন্য REPLACE() ফাংশন ব্যবহার করুন।