ใช้ ORDER BY กับเงื่อนไข Boolean เพื่อจัดลำดับพิเศษ
สร้างตารางและเพิ่มข้อมูล
mysql> create table DemoTable ( MonthNumber int ); Query OK, 0 rows affected (1.68 sec)
mysql> insert into DemoTable values(10); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values(1); Query OK, 1 row affected (0.11 sec) mysql> insert into DemoTable values(9); Query OK, 1 row affected (0.09 sec) mysql> insert into DemoTable values(6); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable values(8); Query OK, 1 row affected (0.09 sec) mysql> insert into DemoTable values(5); Query OK, 1 row affected (0.11 sec)
คิวรี่จัดให้ 5 อยู่บนสุด แล้วค่าอื่นเรียงน้อยไปมาก
mysql> select * from DemoTable order by MonthNumber=5 desc, MonthNumber asc;
ผลลัพธ์
+-------------+ | MonthNumber | +-------------+ | 5 | | 1 | | 6 | | 8 | | 9 | | 10 | +-------------+ 6 rows in set (0.00 sec)
หลักการ: MonthNumber=5 คืน 1 (true) หรือ 0 (false) | DESC ให้ 1 อยู่บนสุด | แถวที่ไม่ใช่ 5 จะเรียง ASC ตามค่า MonthNumber