গ্রুপ করা ফিল্ড দিয়ে ORDER BY করতে ORDER BY CASE পাশাপাশি IN() ব্যবহার করুন। CASE বিভিন্ন শর্ত ইভ্যালুয়েট করে, ORDER BY মানগুলো আসেন্ডিং বা ডিসেন্ডিং অর্ডারে সর্ট করে। MySQL IN() ম্যাচ খুঁজে বের করতে ব্যবহৃত হয়।
প্রথমে একটি টেবিল তৈরি করা যাক:
mysql> create table DemoTable ( Value varchar(40) ); Query OK, 0 rows affected (0.52 sec)
ইনসার্ট কমান্ড ব্যবহার করে টেবিলে কিছু রেকর্ড যোগ করুন:
mysql> insert into DemoTable values('John'); Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable values('100&101'); Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values('Sam'); Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values('90'); Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values('Mike45'); Query OK, 1 row affected (0.17 sec)
সিলেক্ট স্টেটমেন্ট ব্যবহার করে টেবিল থেকে সব রেকর্ড দেখান:
mysql> select *from DemoTable;
এটি নিচের আউটপুট দেবে:
+---------+ | Value | +---------+ | John | | 100&101 | | Sam | | 90 | | Mike45 | +---------+ 5 rows in set (0.00 sec)
গ্রুপ করা ফিল্ড দিয়ে অর্ডার বাই করার কোয়েরি নিচে দেওয়া হলো:
mysql> select *from DemoTable order by case when Value IN('John','Sam','Mike45') then 100 when Value='90' then 101 when Value='100&101' then 102 else 103 end;
এটি নিচের আউটপুট দেবে:
+---------+ | Value | +---------+ | John | | Sam | | Mike45 | | 90 | | 100&101 | +---------+ 5 rows in set (0.03 sec)