Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

แสดงแถวที่ต้องการเป็นแถวแรกด้วย ORDER BY ใน MySQL

ใช้ 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 อยู่บนสุด