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

จัดเรียง MySQL ให้คอลัมน์เฉพาะอยู่บนสุด แล้วค่าอื่นเรียงจากน้อยไปมาก

ใช้ ORDER BY กับเงื่อนไข Boolean เพื่อจัดลำดับพิเศษ

สร้างตารางและเพิ่มข้อมูล

mysql> create table DemoTable ( MonthNumber int ); 
Query OK, 0 rows affected (1.68 sec)
mysql> insert into DemoTable values(10); 
Query OK, 1 row affected (0.14 sec) 
mysql> insert into DemoTable values(1); 
Query OK, 1 row affected (0.11 sec) 
mysql> insert into DemoTable values(9); 
Query OK, 1 row affected (0.09 sec) 
mysql> insert into DemoTable values(6); 
Query OK, 1 row affected (0.13 sec) 
mysql> insert into DemoTable values(8); 
Query OK, 1 row affected (0.09 sec) 
mysql> insert into DemoTable values(5); 
Query OK, 1 row affected (0.11 sec)

คิวรี่จัดให้ 5 อยู่บนสุด แล้วค่าอื่นเรียงน้อยไปมาก

mysql> select * from DemoTable order by MonthNumber=5 desc, MonthNumber asc;

ผลลัพธ์

+-------------+ 
| MonthNumber | 
+-------------+ 
|           5 | 
|           1 | 
|           6 | 
|           8 | 
|           9 | 
|          10 | 
+-------------+ 
6 rows in set (0.00 sec)

หลักการ: MonthNumber=5 คืน 1 (true) หรือ 0 (false) | DESC ให้ 1 อยู่บนสุด | แถวที่ไม่ใช่ 5 จะเรียง ASC ตามค่า MonthNumber