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

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

MySQL-এ সংখ্যা মিশ্র স্ট্রিং সঠিকভাবে সর্ট করতে ORDER BY এর সাথে কিছু đặc biệt কেস ব্যবহার করতে হয়। প্রথমে একটি টেবিল তৈরি করা যাক:

mysql> create table demo18 (
    value text
); 
Query OK, 0 rows affected (1.18 sec)

কিছু রেকর্ড যোগ করুন:

mysql> insert into demo18 values('John Smith');
Query OK, 1 row affected (0.06 sec)
mysql> insert into demo18 values('2J John has 58');
Query OK, 1 row affected (0.17 sec)
mysql> insert into demo18 values('2J John has 9');
Query OK, 1 row affected (0.09 sec)

রেকর্ডগুলো দেখুন:

mysql> select * from demo18;

আউটপুট:

+----------------+
| value          |
+----------------+
| John Smith     |
| 2J John has 58 |
| 2J John has 9  |
+----------------+
3 rows in set (0.00 sec)

সঠিক সর্ট করার কোয়েরি (নিজস্ব ক مرتেন বড় সংখ্যা আগে আসবে):

mysql> select * from demo18
order by regexp_replace(value, '[0-9]*$', ''),
length(value),
value;

আউটপুট (৯ আগে, তারপর ৫৮, সবশেষে John Smith):

+----------------+
| value          |
+----------------+
| 2J John has 9  |
| 2J John has 58 |
| John Smith     |
+----------------+
3 rows in set (0.14 sec)

ব্যাখ্যা

  • REGEXP_REPLACE(value, '[0-9]*$', ''): স্ট্রিং-এর শেষে থাকা সংখ্যা সরিয়ে শুধু প্রিফিক্স বাড়ি রাখে।
  • LENGTH(value): প্রিফিক্স একই হলে ছোট স্ট্রিং আগে আসে।
  • VALUE: অবশেষে লেক্সিকোগ্রাফিকালি সর্ট করে।

এই পদ্ধতিতে '2J John has 9' '2J John has 58'-র আগে আসে, কারণ ৯ < ৫৮। সাধারণ স্ট্রিং সর্টে '58' '9'-এর আগে আসত।

  1. Java দিয়ে MySQL ডেটাবেসে সংযোগ স্থাপন

  2. MySQL-এ অ্যালফানিউমেরিক স্ট্রিং থেকে সংখ্যা বের করে সর্ট করা (RIGHT)

  3. MySQL-এ SUBSTRING_INDEX ব্যবহার করে হাইফনের পরের সংখ্যা মুছে ফেলা

  4. MySQL-এ REGEXP ব্যবহার করে নির্দিষ্ট সংখ্যা দিয়ে শুরু হওয়া স্ট্রিং-নম্বর রেকর্ড ফেচ করা