ใช้ ORDER BY (condition) DESC ยกแถวที่ตรงเงื่อนไขขึ้นบน ส่วนที่เหลือคงลำดับเดิม
mysql> CREATE TABLE DemoTable (
-> Id INT,
-> Name VARCHAR(20)
-> );
Query OK, 0 rows affected (0.82 sec)
mysql> INSERT INTO DemoTable VALUES(201, 'Chris Brown'); Query OK, 1 row affected (0.17 sec) mysql> INSERT INTO DemoTable VALUES(110, 'John Doe'); Query OK, 1 row affected (0.29 sec) mysql> INSERT INTO DemoTable VALUES(101, 'Adam Smith'); Query OK, 1 row affected (0.13 sec) mysql> INSERT INTO DemoTable VALUES(345, 'Carol Taylor'); Query OK, 1 row affected (0.13 sec) mysql> INSERT INTO DemoTable VALUES(135, 'John Smith'); Query OK, 1 row affected (0.11 sec)
mysql> SELECT * FROM DemoTable;
+------+--------------+ | Id | Name | +------+--------------+ | 201 | Chris Brown | | 110 | John Doe | | 101 | Adam Smith | | 345 | Carol Taylor | | 135 | John Smith | +------+--------------+ 5 rows in set (0.00 sec)
ยก ID=101 ขึ้นบน ส่วนอื่นคงลำดับ:
mysql> SELECT * FROM DemoTable ORDER BY (Id = 101) DESC;
+------+--------------+ | Id | Name | +------+--------------+ | 101 | Adam Smith | | 201 | Chris Brown | | 110 | John Doe | | 345 | Carol Taylor | | 135 | John Smith | +------+--------------+ 5 rows in set (0.00 sec)
หลักการ: (Id = 101) คืน 1 (True) สำหรับแถวที่ตรง 0 (False) สำหรับอื่นๆ DESC ให้ 1 อยู่หน้า