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

จัดเรียง MySQL ให้แถวที่เลือกอยู่บนสุดด้วย CASE

ใช้ CASE WHEN ใน ORDER BY เพื่อบังคับให้แถวเฉพาะอยู่บนสุด

ตัวอย่าง

mysql> create table DemoTable ( Number int );
Query OK, 0 rows affected (0.71 sec)
mysql> insert into DemoTable values(490);  Query OK, 1 row affected (0.35 sec)
mysql> insert into DemoTable values(310);  Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values(540);  Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values(123);  Query OK, 1 row affected (0.60 sec)
mysql> insert into DemoTable values(1230); Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values(1090); Query OK, 1 row affected (0.43 sec)

ข้อมูล

mysql> select * from DemoTable;
+--------+
| Number |
+--------+
| 490    |
| 310    |
| 540    |
| 123    |
| 1230   |
| 1090   |
+--------+

จัดเรียงให้ 1090 อยู่บนสุด แล้วค่อยเรียงปกติ

mysql> select * from DemoTable order by (case when Number = 1090 then 0 else 1 end), Number;
+--------+
| Number |
+--------+
| 1090   |
| 123    |
| 310    |
| 490    |
| 540    |
| 1230   |
+--------+

CASE คืน 0 สำหรับแถวที่ต้องการ 1 สำหรับอื่นๆ เรียง ASC ทำให้ 0 อยู่บนสุด