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

MySQL-এ SUBSTR(..., -7, 7) দিয়ে কলাম থেকে শেষ ৭ ক্যারেক্টার বাদে সব মুছে ফেলা


নেগেটিভ স্ট্রাট পজিশন দিয়ে শেষ N ক্যারেক্টার রেখে বাকি মুছে ফেলা

MySQL-এ SUBSTR(str, -N, N) বা SUBSTRING(str FROM -N FOR N) ব্যবহার করে স্ট্রিংয়ের শেষ থেকে N ক্যারেক্টার রেখে বাকি মুছে ফেলা যায়। এখানে UPDATE দিয়ে টেবিলে সরাসরি পরিবর্তন করা হয়েছে।

টেবিল ও ডেটা

mysql> CREATE TABLE DemoTable (Strength TEXT);
mysql> INSERT INTO DemoTable VALUES('John is a good programmer'), ('Chris is a good player in cricket'), ('Bob is good in algorithm');

আপডেটের আগে

+-----------------------------------+
| Strength                          |
+-----------------------------------+
| John is a good programmer         |
| Chris is a good player in cricket |
| Bob is good in algorithm          |
+-----------------------------------+

শেষ ৭ ক্যারেক্টার রেখে আপডেট

mysql> UPDATE DemoTable SET Strength = SUBSTR(Strength, -7, 7);
Query OK, 3 rows affected (0.46 sec)

আপডেটের পর

+----------+
| Strength |
+----------+
| grammer  |
| cricket  |
| gorithm  |
+----------+

ব্যাখ্যা

  • SUBSTR(Strength, -7, 7) — শেষ থেকে ৭ ক্যারেক্টার নেয় (নেগেটিভ স্টার্ট = শেষ থেকে গণনা)।
  • "programmer" → "grammer" (শেষ ৭: g-r-a-m-m-e-r)
  • "cricket" → "cricket" (৭ ক্যারেক্টার, পুরো থাকে)
  • "algorithm" → "gorithm" → কিন্তু আউটপুট "gorith m"? মূল আর্টিকেলে "gorithm" দেখানো হয়েছে, সম্ভবত টাইপো।

সতর্কতা

  • UPDATE স্টেটমেন্ট ডেটা পরমানেন্টলি মুছে ফেলে — আগে BACKUP নিন।
  • SELECT-এ দেখাতে চাইলে: SELECT SUBSTR(Strength, -7) FROM DemoTable; (length অপশনাল)।
  1. MySQL-এ SUBSTRING দিয়ে কলামের প্রথম ২ ক্যারেক্টার রেখে বাকি মুছে ফেলা

  2. MySQL-এ REGEXP দিয়ে স্পেশাল ক্যারেক্টার সম্বলিত কলাম মান বের করা

  3. MySQL কোয়ারিতে লাস্ট নেম রেকর্ডের ভিত্তিতে কলাম কাউন্ট যোগ করা

  4. MySQL-এ LEFT, LENGTH, LOCATE, REVERSE দিয়ে নামের শেষ স্পেসের বামপাশের অংশ বের করা