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

MySQL: เรียงข้อมูลตามลำดับที่กำหนดเอง ด้วย ORDER BY IF()


ใช้ ORDER BY IF() เพื่อเรียงข้อมูลตามลำดับที่ต้องการ

สร้างตารางและข้อมูล

mysql> CREATE TABLE DemoTable (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> FirstName VARCHAR(20),
    -> Branch VARCHAR(20)
    -> );
mysql> INSERT INTO DemoTable(FirstName, Branch) VALUES
    -> ('John','CS'), ('Carol','ME'), ('David','ME'), ('Bob','CE'),
    -> ('Robert','EE'), ('Chris','EEE'), ('James','ME');

ข้อมูลดิบ

+----+-----------+--------+
| Id | FirstName | Branch |
+----+-----------+--------+
| 1  | John      | CS     |
| 2  | Carol     | ME     |
| 3  | David     | ME     |
| 4  | Bob       | CE     |
| 5  | Robert    | EE     |
| 6  | Chris     | EEE    |
| 7  | James     | ME     |
+----+-----------+--------+

Query: เรียงให้ Branch 'ME' อยู่บนสุด

mysql> SELECT * FROM DemoTable ORDER BY IF(Branch='ME', 1, 0) DESC, Branch;

ผลลัพธ์ (ME ก่อน แล้วตามตัวอักษร)

+----+-----------+--------+
| Id | FirstName | Branch |
+----+-----------+--------+
| 2  | Carol     | ME     |
| 3  | David     | ME     |
| 7  | James     | ME     |
| 4  | Bob       | CE     |
| 1  | John      | CS     |
| 5  | Robert    | EE     |
| 6  | Chris     | EEE    |
+----+-----------+--------+