MySQL-এ ORDER BY ক্লজে বুলিয়ান এক্সপ্রেশন ব্যবহার করে নির্দিষ্ট মানকে ফলাফলের শেষে বা শুরুতে রাখা যায়।
টেবিল তৈরি এবং ডেটা ইনসার্ট
mysql> CREATE TABLE DemoTable (
-> Status INT
-> );
Query OK, 0 rows affected (0.66 sec)
mysql> INSERT INTO DemoTable VALUES(30); mysql> INSERT INTO DemoTable VALUES(20); mysql> INSERT INTO DemoTable VALUES(20); mysql> INSERT INTO DemoTable VALUES(30); mysql> INSERT INTO DemoTable VALUES(10); mysql> INSERT INTO DemoTable VALUES(40);
সব রেকর্ড দেখানো
mysql> SELECT * FROM DemoTable;
আউটপুট
+--------+ | Status | +--------+ | 30 | | 20 | | 20 | | 30 | | 10 | | 40 | +--------+ 6 rows in set (0.00 sec)
চাহিদা: ১০ কে শেষে, বাকি আরোহী ক্রমে
20 20 30 30 40 10
কোয়েরি
mysql> SELECT * FROM DemoTable ORDER BY Status = 10, Status;
আউটপুট
+--------+ | Status | +--------+ | 20 | | 20 | | 30 | | 30 | | 40 | | 10 | +--------+ 6 rows in set (0.00 sec)
ব্যাখ্যা: Status = 10 এক্সপ্রেশনটি বুলিয়ান রিটার্ন করে — ১০ হলে TRUE (1), অন্যথায় FALSE (0)। ORDER BY ডিফল্টভাবে অরোহী ক্রমে সাজায় (০ আগে, ১ পরে)। তাই ১০ ছাড়া সব মান (FALSE=০) আগে আসে, তারপর ১০ (TRUE=১) শেষে আসে। একই গ্রুপের ভিতরে Status দিয়ে আরোহী ক্রমে সাজানো হয়।