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

ORDER BY DESC ยกเว้นค่าเดียวใน MySQL

ใช้ ORDER BY กับ DESC สำหรับเรียงจากมากไปน้อย แต่ถ้าต้องการยกเว้นค่าเดียว ให้ใช้ตัวดำเนินการไม่เท่ากัน (<>)

สร้างตารางตัวอย่าง

mysql> create table DemoTable (
    -> Name varchar(100)
    -> );
Query OK, 0 rows affected (0.89 sec)

เพิ่มข้อมูลตัวอย่าง

mysql> insert into DemoTable values('Sam');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values('Chris');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable values('John');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('Carol');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable values('Adam');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values('David');
Query OK, 1 row affected (0.12 sec)

แสดงข้อมูลทั้งหมด

mysql> select * from DemoTable;

ผลลัพธ์

+-------+
| Name  |
+-------+
| Sam   |
| Chris |
| John  |
| Carol |
| Adam  |
| David |
+-------+
6 rows in set (0.00 sec)

คำสั่ง ORDER BY DESC ยกเว้นค่า "Adam"

mysql> select * from DemoTable ORDER BY (Name <> 'Adam') DESC, Name;

ผลลัพธ์

+-------+
| Name  |
+-------+
| Carol |
| Chris |
| David |
| John  |
| Sam   |
| Adam  |
+-------+
6 rows in set (0.00 sec)

คำอธิบาย: (Name <> 'Adam') คืนค่า 1 (TRUE) สำหรับชื่อที่ไม่ใช่ Adam, 0 (FALSE) สำหรับ Adam เรียง DESC ทำให้ TRUE (1) อยู่บน FALSE (0) แล้วค่อยเรียง Name ปกติ