ใช้ ORDER BY column=0 DESC, column DESC เพื่อให้ 0 อยู่บนสุด แล้วค่าอื่นเรียงจากมากไปน้อย
ตัวอย่าง
mysql> create table DemoTable ( Value int ); Query OK, 0 rows affected (0.65 sec)
mysql> insert into DemoTable values(90); Query OK, 1 row affected (0.23 sec) mysql> insert into DemoTable values(0); Query OK, 1 row affected (0.11 sec) mysql> insert into DemoTable values(20); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable values(0); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable values(10); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable values(70); Query OK, 1 row affected (0.34 sec) mysql> insert into DemoTable values(0); Query OK, 1 row affected (0.15 sec)
ข้อมูลก่อนจัดเรียง
mysql> select * from DemoTable;
+-------+ | Value | +-------+ | 90 | | 0 | | 20 | | 0 | | 10 | | 70 | | 0 | +-------+
คำสั่งจัดเรียง
mysql> select * from DemoTable order by Value=0 DESC, Value DESC;
ผลลัพธ์
+-------+ | Value | +-------+ | 0 | | 0 | | 0 | | 90 | | 70 | | 20 | | 10 | +-------+
Value=0 คืนค่า 1 (true) สำหรับ 0 และ 0 (false) สำหรับค่าอื่น เรียง DESC จะทำให้ 1 (คือ 0) อยู่บนสุด