ใช้ ORDER BY พร้อมเงื่อนไข Boolean เพื่อนำแถวที่ต้องการขึ้นก่อน
สร้างตารางและเพิ่มข้อมูล
mysql> CREATE TABLE DemoTable (Value INT);
mysql> INSERT INTO DemoTable VALUES (20), (8), (18), (11), (9), (19), (6), (7);
ดูข้อมูลเดิม
mysql> SELECT * FROM DemoTable;
+-------+
| Value |
+-------+
| 20 |
| 8 |
| 18 |
| 11 |
| 9 |
| 19 |
| 6 |
| 7 |
+-------+
นำค่า 9 มาเป็นแถวแรก แล้วเรียงอื่นๆ จากมากไปน้อย
mysql> SELECT * FROM DemoTable
-> ORDER BY (Value = 9) DESC, Value DESC;
ผลลัพธ์
+-------+
| Value |
+-------+
| 9 | ← แถวที่ต้องการอยู่บนสุด
| 20 |
| 19 |
| 18 |
| 11 |
| 8 |
| 7 |
| 6 |
+-------+
คำอธิบาย: (Value = 9) คืนค่า 1 (true) สำหรับแถวที่ Value=9 และ 0 (false) สำหรับอื่นๆ เรียง DESC ทำให้ 1 อยู่บนสุด