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

MySQL-এ অক্ষর অনুযায়ী ORDER BY (সংখ্যা নয়) - '৪৫৬ জন স্মিথ' মতো স্ট্রিং-সংখ্যা মিশ্র কলাম মানের জন্য


MySQL-এ SUBSTRING() ব্যবহার করে অক্ষর অনুযায়ী সাজানো

MySQL-এ সংখ্যা মিশ্র স্ট্রিং কলামকে শুধু অক্ষর অংশ দিয়ে সাজানোর জন্য SUBSTRING() এবং LOCATE() ফাংশন সংযুক্তে ব্যবহার করা হয়। নিচে ধাপে ধাপে উদাহরণ দেওয়া হলো:

১. টেবিল তৈরি করা

mysql> CREATE TABLE DemoTable (
    Id VARCHAR(100)
);
Query OK, 0 rows affected (0.65 sec)

২. ডেটা ইনসার্ট করা

mysql> INSERT INTO DemoTable VALUES('456 John Smith');
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO DemoTable VALUES('897 Adam Smith');
Query OK, 1 row affected (0.10 sec)
mysql> INSERT INTO DemoTable VALUES('1009 Bob Smith');
Query OK, 1 row affected (0.13 sec)

৩. সব রেকর্ড দেখা

mysql> SELECT * FROM DemoTable;

আউটপুট:

+----------------+
| Id             |
+----------------+
| 456 John Smith |
| 897 Adam Smith |
| 1009 Bob Smith |
+----------------+
3 rows in set (0.00 sec)

৪. প্রথম স্পেসের পরের অংশ দিয়ে ORDER BY

mysql> SELECT * FROM DemoTable 
ORDER BY SUBSTRING(Id, LOCATE(' ', Id));

ফলাফল:

+----------------+
| Id             |
+----------------+
| 897 Adam Smith |
| 1009 Bob Smith |
| 456 John Smith |
+----------------+
3 rows in set (0.05 sec)

ব্যাখ্যা

  • LOCATE(' ', Id) — প্রথম স্পেসের অবস্থান খুঁজে বের করে।
  • SUBSTRING(Id, ...) — সেই পজিশন থেকে শেষ পর্যন্ত স্ট্রিং নেয় (যেমন: "John Smith", "Adam Smith")।
  • ফলস্বরূপ সাজানো হয়েছে: Adam → Bob → John (বর্ণানুক্রমিক)।

টিপস: যদি একাধিক স্পেস থাকে, তবে TRIM() বা SUBSTRING_INDEX() ব্যবহার করে আরও সঠিক পার্স করা যায়।

  1. MySQL에서 IS NOT NULL로 NULL 제외하고 NOT NULL 값만 다른 테이블로 복사하기

  2. MySQL-এ ENUM টাইপ ব্যবহার করে কলাম মান সীমাবদ্ধ করা

  3. MySQL-এ একাধিক LIKE অপারেটর ORDER BY-এ ব্যবহার করা

  4. MySQL-এ সংখ্যা মিশ্র স্ট্রিং সর্ট করুন