ใช้ฟังก์ชัน FIELD() ร่วม ORDER BY เพื่อกำหนดลำดับเฉพาะเจาะจงใน IN clause รูปแบบ:
SELECT * FROM yourTableName
WHERE yourColumnName IN (val1, val2, val3, ...)
ORDER BY FIELD(yourColumnName, val1, val2, val3, ...);
ตัวอย่าง
สร้างตารางนักเรียน 7 เรคคอร์ด
เรียงตามลำดับ ID ที่กำหนด: 1, 96, 101, 10, 15, 11, 20
mysql> SELECT * FROM SelectInDemo
-> WHERE StudentId IN (1,96,101,10,15,11,20)
-> ORDER BY FIELD(StudentId, 1,96,101,10,15,11,20);
ผลลัพธ์: ข้อมูลเรียงตามลำดับ ID ที่ระบุใน FIELD() ทุกประการ
ลำดับที่ 2: 1, 10, 11, 15, 20, 101, 96
mysql> SELECT * FROM SelectInDemo
-> WHERE StudentId IN (1,10,11,15,20,101,96)
-> ORDER BY FIELD(StudentId, 1,10,11,15,20,101,96);
ประโยชน์: ควบคุมลำดับการแสดงผลได้อย่างแม่นยำ ไม่ผูกตับกับ ASC/DESC ธรรมดา