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

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

পুরো নাম (FullName) থেকে শেষ শব্দ (সারনেম/উপাধি) বাদ দিয়ে বাকি অংশ বের করতে স্ট্রিং ফাংশন কম্বিনেশন ব্যবহার করা হয়।

টেবিল ও ডেটা তৈরি

mysql> CREATE TABLE DemoTable1939 (FullName VARCHAR(50));

mysql> INSERT INTO DemoTable1939 VALUES
    ('Adam Smith'), ('Robert Downey, Jr.'), ('Sylvester Stallone'), ('Chris Hemsworth');

ডেটা যাচাই

mysql> SELECT * FROM DemoTable1939;
+--------------------+
| FullName           |
+--------------------+
| Adam Smith         |
| Robert Downey, Jr. |
| Sylvester Stallone |
| Chris Hemsworth    |
+--------------------+

কোয়েরি: শেষ স্পেসের বামপাশের সবকিছু

mysql> SELECT LEFT(FullName, LENGTH(FullName) - LOCATE(' ', REVERSE(FullName)) + 1)
    FROM DemoTable1939;

স্টেপ-বাই-স্টেপ ব্যাখ্যা:

  1. REVERSE(FullName) — স্ট্রিং উল্টো করে (শেষ স্পেস প্রথমে আসে)।
  2. LOCATE(' ', REVERSE(...)) — উল্টো স্ট্রিংএ প্রথম স্পেসের পজিশন (১-বেসড)।
  3. LENGTH(FullName) - LOCATE(...) + 1 — মূল স্ট্রিংএ সেই স্পেসের পজিশন।
  4. LEFT(FullName, position) — সেই পজিশন পর্যন্ত বামপাশের সাবস্ট্রিং।

আউটপুট:

+---------------------------------------------------------------------+
| LEFT(FullName, LENGTH(FullName) - LOCATE(' ', REVERSE(FullName))+1) |
+---------------------------------------------------------------------+
| Adam                                                                |
| Robert Downey,                                                      |
| Sylvester                                                           |
| Chris                                                               |
+---------------------------------------------------------------------+

সরলীকৃত বিকল্প: SUBSTRING_INDEX (MySQL)

SELECT SUBSTRING_INDEX(FullName, ' ', 
    LENGTH(FullName) - LENGTH(REPLACE(FullName, ' ', '')) -- স্পেস সংখ্যা
) FROM DemoTable1939;

এটি স্পেসের সংখ্যা অনুযায়ী শেষ শব্দ বাদ দেয়। কিন্তু উপরের পদ্ধতিটি সবচেয়ে надеждযোগ্য।

সতর্কতা

  • একক শব্দের নাম (যেমন 'Cher') হলে ফলাফল খালি স্ট্রিং হবে।
  • ট্রেইলিং স্পেস থাকলে TRIM() দিন।
  • MySQL 8.0+ এ REGEXP_SUBSTR(FullName, '^.*(?= [^ ]+$)') ব্যবহার করা যায় (লুকআহেড)।
  1. MySQL কোয়ারি: ফার্স্ট নেম, লাস্ট নেম কলামগুলো একত্রিত করে ফুল নেম একক কলামে দেখানো

  2. MySQL-এ LIKE এবং % 와일্ডকার্ড ব্যবহার করে নির্দিষ্ট ক্যারেক্টার/সংখ্যা দিয়ে শেষ হওয়া মান বের করা

  3. MySQL SELECT কোয়েরি নির্দিষ্ট মাস ও বছরের রেকর্ড রিটার্ন করার জন্য

  4. MySQL-এ SELECT কুয়েরি দিয়ে INSERT করা (INSERT ... SELECT)