A-AA+then

การ Query ข้อมูลด้วยคำสั่ง IN() ของ SQL โดยปกติแล้วผลลัพท์ที่ได้จะเรียงลำดับตามข้อมูลในฐานข้อมูลครับ เนื่องจาก ฐานข้อมูลจะทำการ Query ข้อมูลโดยการเรียงลำดับตาม record ของข้อมูล เช่น
SELECT * FROM table WHERE id IN (4,6,8,1,2)
ผลลัพท์อาจได้ข้อมูลเป็น 1,2,4,6,8 ตามลำดับของข้อมูลในฐานช้อมูล

แต่ถ้าเราต้องการให้ผลลัพท์เรียงลำดับตามข้อมูลที่อยู่ใน IN สามารถใช้คำสั่ง ORDER BY FIELD ได้ครับ
SELECT * FROM table WHERE id IN (4,6,8,1,2) ORDER BY FIELD (id, 4,6,8,1,2)
ผลลัพท์ที่ได้ก็จะเรียงลำดับตามข้อมูลที่ส่งให้ใน IN ครับ คือ 4,6,8,1,2

SQL

Relate

^