เมื่อต้องการแสดงผลตามลำดับ ID ที่ระบุมา ไม่ใช่ลำดับตัวเลข ใช้ ORDER BY CASE
mysql> CREATE TABLE DemoTable1550 (
-> Id INT,
-> Name VARCHAR(20)
-> );
Query OK, 0 rows affected (0.61 sec)
mysql> INSERT INTO DemoTable1550 VALUES(101, 'Chris'); Query OK, 1 row affected (0.10 sec) mysql> INSERT INTO DemoTable1550 VALUES(110, 'Bob'); Query OK, 1 row affected (0.29 sec) mysql> INSERT INTO DemoTable1550 VALUES(105, 'Carol'); Query OK, 1 row affected (0.12 sec) mysql> INSERT INTO DemoTable1550 VALUES(109, 'Mike'); Query OK, 1 row affected (0.17 sec)
mysql> SELECT * FROM DemoTable1550;
+------+-------+ | Id | Name | +------+-------+ | 101 | Chris | | 110 | Bob | | 105 | Carol | | 109 | Mike | +------+-------+ 4 rows in set (0.00 sec)
แสดงเฉพาะ ID 109, 101, 110 ตามลำดับนี้:
mysql> SELECT * FROM DemoTable1550
-> WHERE Id IN (109, 101, 110)
-> ORDER BY CASE Id
-> WHEN 109 THEN 1001
-> WHEN 101 THEN 1002
-> WHEN 110 THEN 1003
-> END;
+------+-------+ | Id | Name | +------+-------+ | 109 | Mike | | 101 | Chris | | 110 | Bob | +------+-------+ 3 rows in set (0.00 sec)
เทคนิค: กำหนดตัวเลขลำดับใน CASE ตามต้องการ ใช้ได้กับรายการ ID ที่ส่งมาจากแอปพลิเคชัน