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

MySQL-এ কাস্টম অর্ডারিংয়ের জন্য ORDER BY CASE ব্যবহার করা

IN() কাস্টম অর্ডারিংয়ের জন্য সরাসরি ORDER BY-তে ব্যবহার করা যায় না। এর পরিবর্তে ORDER BY CASE ব্যবহার করুন।

প্রথমে একটি টেবিল তৈরি করি:

mysql> create table DemoTable752(
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Name varchar(100)
);
Query OK, 0 rows affected (0.63 sec)

কিছু রেকর্ড ইনসার্ট করি:

mysql> insert into DemoTable752(Name) values('John');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable752(Name) values('Carol');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable752(Name) values('Bob');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable752(Name) values('Mike');
Query OK, 1 row affected (0.23 sec)
mysql> insert into DemoTable752(Name) values('Sam');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable752(Name) values('Adam');
Query OK, 1 row affected (0.26 sec)
mysql> insert into DemoTable752(Name) values('Chris');
Query OK, 1 row affected (0.26 sec)

সব রেকর্ড দেখি:

mysql> select *from DemoTable752;

আউটপুট:

+----+-------+
| Id | Name  |
+----+-------+
| 1  | John  |
| 2  | Carol |
| 3  | Bob   |
| 4  | Mike  |
| 5  | Sam   |
| 6  | Adam  |
| 7  | Chris |
+----+-------+
7 rows in set (0.00 sec)

Id ১, ২, ৩ প্রায়োরিটি দিয়ে (সেগুলো প্রথমে, তারপর বাকিগুলো Id অনুযায়ী, তারপর Name অনুযায়ী) সর্ট করার ক্যোয়ারি:

mysql> select *from DemoTable752 order by CASE WHEN Id IN (1,2,3) THEN 1 ELSE Id END, Name;

আউটপুট:

+----+-------+
| Id | Name  |
+----+-------+
| 3  | Bob   |
| 2  | Carol |
| 1  | John  |
| 4  | Mike  |
| 5  | Sam   |
| 6  | Adam  |
| 7  | Chris |
+----+-------+
7 rows in set (0.00 sec)

ব্যাখ্যা: CASE এক্সপ্রেশন Id ১,২,৩ এর জন্য ১ রিটার্ন করে (সর্বোচ্চ প্রায়োরিটি), বাকিদের জন্য নিজস্ব Id। তারপর Name দিয়ে সেকেন্ডারি সর্ট।

  1. MySQL কোয়ারি: একাধিক ID দ্বারা সাজানো (ORDER BY FIELD)

  2. MySQL-এ ORDER BY Amount=0, Amount দিয়ে শূন্য মানগুলো শেষে পাঠানো

  3. MySQL-এ IF() ফাংশন ব্যবহার করে খালি কলামের জন্য কাস্টম টেক্সট দেখান

  4. MySQL-এ REGEXP_INSTR ব্যবহার করে সার্চ কোয়েরি করা