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

MySQL-এ শর্তসাপেক্ষ ORDER BY ব্যবহার করে রেকর্ড সাজানো

MySQL-এ ORDER BY IF() ব্যবহার করে নির্দিষ্ট শর্তের ওপর ভিত্তি করে রেকর্ড সাজানো যায়। নিচে একটি উদাহরণ দেওয়া হলো যেখানে নাম 'Sam' হলে সেটিকে আগে রাখা হয়েছে, বাকিগুলো স্কোর অনুযায়ী নিম্নক্রমে।

টেবিল তৈরি ও ডেটা ইনসার্ট

mysql> CREATE TABLE DemoTable (
    Name VARCHAR(50),
    Score INT
);

mysql> INSERT INTO DemoTable VALUES ('Chris', 98);
mysql> INSERT INTO DemoTable VALUES ('David', 45);
mysql> INSERT INTO DemoTable VALUES ('Bob', 56);
mysql> INSERT INTO DemoTable VALUES ('Sam', 89);
mysql> INSERT INTO DemoTable VALUES ('Carol', 78);

শর্তসাপেক্ষ ORDER BY কোয়েরি

mysql> SELECT * FROM DemoTable
       ORDER BY IF(Name = 'Sam', 1, 0) ASC, Score DESC;

ফলাফল:

+-------+-------+
| Name  | Score |
+-------+-------+
| Chris |    98 |
| Carol |    78 |
| Bob   |    56 |
| David |    45 |
| Sam   |    89 |
+-------+-------+

ব্যাখ্যা: IF(Name='Sam',1,0) এক্সপ্রেশনটি Sam এর জন্য ১ রিটার্ন করে, অন্যদের জন্য ০। ASC সাজাতে ০ আগে আসে, তাই Sam শেষে থাকে। তারপর Score DESC দিয়ে বাকিগুলো উচ্চ থেকে নিম্নে সাজানো হয়েছে।

  1. MySQL-এ VARCHAR কলামে স্ট্রিং ও সংখ্যা মিশ্রিত ডেটা সর্ট করা (ORDER BY + 0)

  2. MySQL-এ নির্দিষ্ট মাস এবং বছরের ভিত্তিতে রেকর্ড ফিল্টার করা

  3. MySQL-এ ORDER BY CASE ব্যবহার করে কাস্টম ক্রমে রেকর্ড সাজানো

  4. MySQL-এ ORDER BY CASE WHEN ব্যবহার করে কাস্টম সর্টিং করা