การเรียงลำดับข้อมูล SQL ตามข้อมูลที่เลือก
การ Query ข้อมูลด้วยคำสั่ง IN() ของ SQL โดยปกติแล้วผลลัพท์ที่ได้จะเรียงลำดับตามข้อมูลในฐานข้อมูลครับ เนื่องจาก ฐานข้อมูลจะทำการ Query ข้อมูลโดยการเรียงลำดับตาม record ของข้อมูล เช่น
ผลลัพท์อาจได้ข้อมูลเป็น 1,2,4,6,8 ตามลำดับของข้อมูลในฐานช้อมูล
แต่ถ้าเราต้องการให้ผลลัพท์เรียงลำดับตามข้อมูลที่อยู่ใน IN สามารถใช้คำสั่ง ORDER BY FIELD ได้ครับ
ผลลัพท์ที่ได้ก็จะเรียงลำดับตามข้อมูลที่ส่งให้ใน IN ครับ คือ 4,6,8,1,2
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