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

MySQL-এ শেষ ক্যারেক্টার নির্দিষ্ট হলে সেটি মুছে ফেলা (SUBSTRING)

শেষ ক্যারেক্টার নির্দিষ্ট হলে মুছে ফেলতে SUBSTRING() (বা SUBSTR()) ব্যবহার করুন। প্রথমে একটি টেবিল তৈরি করি:

mysql> CREATE TABLE DemoTable (SubjectName VARCHAR(100));

রেকর্ড যোগ করি (কিছুর শেষে '?' আছে):

mysql> INSERT INTO DemoTable VALUES('MySQL');
mysql> INSERT INTO DemoTable VALUES('MongoDB?');
mysql> INSERT INTO DemoTable VALUES('Java?');
mysql> INSERT INTO DemoTable VALUES('C');

সকল রেকর্ড দেখতে:

mysql> SELECT * FROM DemoTable;

আউটপুট:

+-------------+
| SubjectName |
+-------------+
| MySQL       |
| MongoDB?    |
| Java?       |
| C           |
+-------------+

শেষে '?' থাকলে সেটি মুছে ফেলার কোয়েরি:

mysql> UPDATE DemoTable 
SET SubjectName = SUBSTRING(SubjectName, 1, CHAR_LENGTH(SubjectName) - 1) 
WHERE SubjectName LIKE '%?';

আউটপুট (আপডেটের পর):

+-------------+
| SubjectName |
+-------------+
| MySQL       |
| MongoDB     |
| Java        |
| C           |
+-------------+

ব্যাখ্যা:

  • SUBSTRING(str, 1, len-1): ১ নম্বর পজিশন থেকে (len-1) ক্যারেক্টার নেয়, অর্থাৎ শেষ ক্যারেক্টার বাদ দেয়।
  • CHAR_LENGTH(SubjectName) - 1: মোট দৈর্ঘ্য মাইনাস ১।
  • WHERE SubjectName LIKE '%?': শুধু যাদের শেষে '?' আছে তাদেরই আপডেট করে।

বিকল্প: TRIM(TRAILING '?' FROM SubjectName) ব্যবহার করলেও একই কাজ হবে এবং আরও পঠনীয়।

  1. MySQL-এ RIGHT() এবং NOT IN দিয়ে নির্দিষ্ট শেষ ৩ ডিজিটवाले মান বাদ দিয়ে বাকি দেখানো

  2. MySQL-এ কমা-বিন্যস্ত স্ট্রিং থেকে নির্দিষ্ট শব্দ মুছে ফেলা (SET টাইপ ও বিট অপারেশন)

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

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