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

จัดเรียง MySQL เริ่มจากค่าเฉพาะ (Custom Start Order)

ใช้ ORDER BY column < value, column เพื่อเริ่มจากค่าที่มากกว่าเกณฑ์ก่อน

ตัวอย่าง

mysql> create table DemoTable (
    ClientId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ClientName varchar(30)
);
Query OK, 0 rows affected (0.74 sec)
mysql> insert into DemoTable(ClientName) values('John');  Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable(ClientName) values('Chris'); Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable(ClientName) values('Robert'); Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable(ClientName) values('David'); Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable(ClientName) values('Bob');   Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable(ClientName) values('Carol'); Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable(ClientName) values('Sam');   Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable(ClientName) values('Mike');  Query OK, 1 row affected (0.12 sec)

ข้อมูล

mysql> select * from DemoTable;
+----------+------------+
| ClientId | ClientName |
+----------+------------+
| 1        | John       |
| 2        | Chris      |
| 3        | Robert     |
| 4        | David      |
| 5        | Bob        |
| 6        | Carol      |
| 7        | Sam        |
| 8        | Mike       |
+----------+------------+

เริ่มจาก ClientId >= 5 (คือ ClientId < 5 เป็น false = 0 อยู่หลัง)

mysql> select * from DemoTable order by ClientId < 5, ClientId;
+----------+------------+
| ClientId | ClientName |
+----------+------------+
| 5        | Bob        |
| 6        | Carol      |
| 7        | Sam        |
| 8        | Mike       |
| 1        | John       |
| 2        | Chris      |
| 3        | Robert     |
| 4        | David      |
+----------+------------+

ClientId < 5 คืน 1 (true) สำหรับ 1-4 และ 0 (false) สำหรับ 5-8 เรียง ASC ทำให้ 0 (คือ 5-8) อยู่บนสุด