প্রথম নাম ও শেষ নামের প্রথম অক্ষর একই কিনা চেক করতে LEFT() ফাংশন ব্যবহার করে প্রথম অক্ষর বের করে UPPER() দিয়ে কেস-ইনসেনসিটিভ তুলনা করা হয়।
টেবিল তৈরি ও ডেটা ইনসার্ট
mysql> CREATE TABLE DemoTable789 (FirstName VARCHAR(100), LastName VARCHAR(100)); Query OK, 0 rows affected (0.78 sec)
mysql> INSERT INTO DemoTable789 VALUES ('Adam', 'Smith');
Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO DemoTable789 VALUES ('Tom', 'Taylor');
Query OK, 1 row affected (0.23 sec)
mysql> INSERT INTO DemoTable789 VALUES ('Bob', 'Brown');
Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO DemoTable789 VALUES ('David', 'Miller');
Query OK, 1 row affected (0.22 sec)
সকল রেকর্ড
mysql> SELECT * FROM DemoTable789;
আউটপুট:
+-----------+----------+ | FirstName | LastName | +-----------+----------+ | Adam | Smith | | Tom | Taylor | | Bob | Brown | | David | Miller | +-----------+----------+ 4 rows in set (0.00 sec)
প্রথম অক্ষর মিলে যাওয়া রেকর্ড বের করা
mysql> SELECT * FROM DemoTable789 WHERE UPPER(LEFT(FirstName, 1)) = UPPER(LEFT(LastName, 1));
ফলাফল (Tom-Taylor, Bob-Brown):
+-----------+----------+ | FirstName | LastName | +-----------+----------+ | Tom | Taylor | | Bob | Brown | +-----------+----------+ 2 rows in set (0.00 sec)
ব্যাখ্যা
LEFT(str, 1)- স্ট্রিংয়ের বাম পাশ থেকে ১ অক্ষর নেয়।UPPER()- বড় হাতের অক্ষরে রূপান্তর করে (কেস-ইনসেনসিটিভ তুলনার জন্য)।- MySQL ডিফল্টভাবে কেস-ইনসেনসিটিভ (collation-এ নির্ভর), কিন্তু
UPPER()ব্যবহার করা নিরাপদ।
বিকল্প: SUBSTRING()
WHERE UPPER(SUBSTRING(FirstName, 1, 1)) = UPPER(SUBSTRING(LastName, 1, 1))