ใช้ 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 |
+----+-----------+--------+