কম্পিউটার টিউটোরিয়াল

MySQL-এ স্ট্রিং-এর শেষ কমার পরের সব ক্যারেক্টার মুছে ফেলা (SUBSTRING_INDEX ব্যবহার)


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 |
+----+---------------------------+

প্রতিটি স্ট্রিং-এ শেষ কমা এবং তার পরের অংশ মুছে গেলে।

  1. MySQL কোয়েরি দিয়ে নির্দিষ্ট শেষ স্ট্রিং অক্ষর অনুযায়ী সাজানো

  2. MySQL-এ হাইফেন (-) এর আগের সব ক্যারেক্টার বের করা (SUBSTRING_INDEX)

  3. MySQL-এ SUBSTRING_INDEX ব্যবহার করে হাইফনের পরের সংখ্যা মুছে ফেলা

  4. জাভাতে স্ট্রিং থেকে সব নন-অ্যালফাবেটিক্যাল ক্যারেক্টার রিমুভ করা