คำสั่ง ORDER BY เป็นคำสั่งที่ใช้สำหรับจัดเรียงข้อมูลที่ดึงออกจากฐานข้อมูล การจัดเรียงสามารถทำได้ทั้งจากน้อยไปหามาก และจากมากไปหาน้อย โดยค่าดีฟอลต์อยู่ที่เรียงจากน้อยไปหามาก ได้ทั้งตัวเลขและตัวหนังสือ

ไวยากรณ์

SELECT column_name(s)
FROM TABLE_NAME
ORDER BY column_name(s) ASC|DESC

ตัวอย่างดึงข้อมูลเรียงจากน้อยไปหามาก

SELECT *
FROM administrator
ORDER BY administrator_name

ดึงข้อมูลจากตาราง administrator โดยเรียงลำดับผลลัพธ์ตามฟิลด์ administrator_name ชื่อผู้ดูแลระบบ น้อยไปหามาก
จะเห็นว่าเราไม่ต้องระบุคีย์เวิร์ด ASC หลัง ORDER BY ก็ได้ เพราะค่าดีฟอลต์มันอยู่ที่ ASC อยู่แล้ว

ตัวอย่างดึงข้อมูลเรียงจากน้อยไปหามาก

SELECT *
FROM administrator
ORDER BY administrator_name ASC

ให้ผลลัพธ์เดียวกับคำสั่งด้านบน
ดึงข้อมูลจากตาราง administrator โดยเรียงลำดับผลลัพธ์ตามฟิลด์ administrator_name ชื่อผู้ดูแลระบบ น้อยไปหามาก

ตัวอย่างดึงข้อมูลเรียงจากมากไปหาน้อย

SELECT *
FROM administrator
ORDER BY administrator_name DESC

ดึงข้อมูลจากตาราง administrator โดยเรียงลำดับผลลัพธ์ตามฟิลด์ administrator_name ชื่อผู้ดูแลระบบ มากไปหาน้อย

ASC นั้นย่อมาจาก Ascending
DESC นั้นย่อมาจาก Descending

สิ่งหนึ่งที่อยากจะบอกไว้ทิ้งท้ายก็คือ ภาษา SQL นั้นจะไม่สนใจเรื่องอักษรตัวเล็ก-ตัวใหญ่ DESC จะมีความหมายเหมือนกับเขียน desc

ถึงแม้ว่าท่านเขียนโปรแกรมติดต่อฐานข้อมูลด้วยภาษา PHP ที่มันให้ความสำคัญกับตัวเล็กตัวใหญ่ แต่ในคำสั่ง SQL ก็ไม่ต้องสนใจตัวเล็กตัวใหญ่

SELECT *
FROM administrator
ORDER BY administrator_name ASC
 
// เขียนอย่างนี้ก็ได้เหมือนกัน
 
SELECT *
FROM administrator
ORDER BY administrator_name ASC

แต่ขอแนะนำว่า ให้เขียน SQL ด้วยอักษรตัวใหญ่ทั้งหมด เพื่อง่ายในการอ่าน ก็ลองดูจากตัวอย่างด้านบนละกัน แบบไหนอ่านง่ายกว่า