MySQL-এ SUBSTRING_INDEX() এবং LENGTH() ব্যবহার করে শেষ কমার পরের অংশ সরানো
একটি স্ট্রিং-এ শেষ কমা (`,`) খুঁজে বের করে তার পরের সব ক্যারেক্টার মুছে ফেলতে SUBSTRING_INDEX() ফাংশন ব্যবহার করা হয়। যেহেতু কমার সংখ্যা Фиксড নয়, তাই ডাইনামিকভাবে কমার সংখ্যা গণনা করতে LENGTH() এবং REPLACE() ব্যবহার করা হয়।
সিনট্যাক্স
UPDATE yourTableName
SET yourColumnName = SUBSTRING_INDEX(
yourColumnName,
',',
LENGTH(yourColumnName) - LENGTH(REPLACE(yourColumnName, ',', ''))
);
লজিক: LENGTH(col) - LENGTH(REPLACE(col, ',', '')) = স্ট্রিং-এ মোট কমার সংখ্যা। SUBSTRING_INDEX(str, ',', N) = প্রথম N টি কমা পর্যন্তের স্ট্রিং রিটার্ন করে। সুতরাং মোট কমার সংখ্যা দিয়ে কল করলে শেষ কমার আগের অংশই পাওয়া যায়।
উদাহরণ
টেবিল তৈরি
mysql> CREATE TABLE RemoveAllCharacters (
-> Id INT NOT NULL AUTO_INCREMENT,
-> FullInfo VARCHAR(200),
-> PRIMARY KEY(Id)
-> );
ডেটা ইনসার্ট
mysql> INSERT INTO RemoveAllCharacters(FullInfo) VALUES('John,Smith,23,98,4565886');
mysql> INSERT INTO RemoveAllCharacters(FullInfo) VALUES('Carol,Taylor,26,91');
mysql> INSERT INTO RemoveAllCharacters(FullInfo) VALUES('David,Miller,21');
mysql> INSERT INTO RemoveAllCharacters(FullInfo) VALUES('Robert,Jones,22,97');
mysql> INSERT INTO RemoveAllCharacters(FullInfo) VALUES('Sam,Williams,27,88,456788,97877');
আপডেট করার আগে
mysql> SELECT * FROM RemoveAllCharacters;
+----+---------------------------------+ | Id | FullInfo | +----+---------------------------------+ | 1 | John,Smith,23,98,4565886 | | 2 | Carol,Taylor,26,91 | | 3 | David,Miller,21 | | 4 | Robert,Jones,22,97 | | 5 | Sam,Williams,27,88,456788,97877 | +----+---------------------------------+
আপডেট কোয়েরি
mysql> UPDATE RemoveAllCharacters
-> SET FullInfo = SUBSTRING_INDEX(FullInfo, ',', LENGTH(FullInfo) - LENGTH(REPLACE(FullInfo, ',', '')));
আপডেট করার পর
mysql> SELECT * FROM RemoveAllCharacters;
+----+---------------------------+ | Id | FullInfo | +----+---------------------------+ | 1 | John,Smith,23,98 | | 2 | Carol,Taylor,26 | | 3 | David,Miller | | 4 | Robert,Jones,22 | | 5 | Sam,Williams,27,88,456788 | +----+---------------------------+
প্রতিটি স্ট্রিং-এ শেষ কমা এবং তার পরের অংশ মুছে গেলে।