การเรียงลำดับข้อมูล SQL ตามข้อมูลที่เลือก

การ 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
ผู้เขียน goragod โพสต์เมื่อ 04 มี.ค. 2556 เปิดดู 9,461 ป้ายกำกับ SQL
^