MySQL-এ ORDER BY ক্লজে বুলিয়ান এক্সপ্রেশন ব্যবহার করে নির্দিষ্ট মানকে ফলাফলের শুরুতে আনা যায়।
টেবিল তৈরি এবং ডেটা ইনসার্ট
mysql> CREATE TABLE DemoTable (
-> Number INT
-> );
Query OK, 0 rows affected (0.57 sec)
mysql> INSERT INTO DemoTable VALUES(10), (20), (12), (14), (19), (45), (56), (103), (87), (98);
সব রেকর্ড দেখানো
mysql> SELECT * FROM DemoTable;
আউটপুট
+--------+ | Number | +--------+ | 10 | | 20 | | 12 | | 14 | | 19 | | 45 | | 56 | | 103 | | 87 | | 98 | +--------+ 10 rows in set (0.00 sec)
৪৫ কে প্রথমে, বাকি আরোহী ক্রমে
mysql> SELECT * FROM DemoTable ORDER BY (Number = 45) DESC, Number;
আউটপুট
+--------+ | Number | +--------+ | 45 | | 10 | | 12 | | 14 | | 19 | | 20 | | 56 | | 87 | | 98 | | 103 | +--------+ 10 rows in set (0.00 sec)
ব্যাখ্যা: (Number = 45) বুলিয়ান এক্সপ্রেশন — ৪৫ হলে TRUE (1), অন্যথায় FALSE (0)। DESC দিয়ে ১ (TRUE) কে আগে আনা হয়েছে। তারপর Number দিয়ে আরোহী ক্রমে সাজানো হয়েছে।
একাধিক মানকে প্রথমে আনা: ORDER BY FIELD(Number, 45, 10, 20) DESC, Number — FIELD() ফাংশন মানটি লিস্টে কততম পজিশনে আছে তা রিটার্ন করে (নাইলে ০)। DESC দিয়ে আনা যাবে।