
คำสั่ง ORDER BY เป็นคำสั่งที่ใช้สำหรับจัดเรียงข้อมูลที่ดึงออกจากฐานข้อมูล การจัดเรียงสามารถทำได้ทั้งจากน้อยไปหามาก และจากมากไปหาน้อย โดยค่าดีฟอลต์อยู่ที่เรียงจากน้อยไปหามาก ได้ทั้งตัวเลขและตัวหนังสือ
คำสั่งที่ใช้สำหรับดึงข้อมูลออกจากฐานข้อมูล พร้อมทั้งจัดเรียงมันออกมาด้วยนั้น เขาใช้คำสั่ง order by ข้อมูลที่ถูกจัดเรียงนั้น สามารถกำหนดให้เรียงมากไปหาน้อย หรือน้อยไปหามากก็ได้ ถ้าเป็นตัวอักษรน้อยไปหามาก มันก็จะเรียงจาก a-z ถ้าเป็นตัวเลข ก็จะเรียงจาก 0 ขึ้นไปเรื่อยๆ
ทีนี้มันมีปัญหาอยู่ว่า ถ้าเราต้องการ ให้ bangkok มันขึ้นก่อน แล้วค่อยเป็น Sandnes แล้วจึงเป็น Indo
บทความนี้เกิดจากผมช่วยแก้ปัญหา การเรียงลำดับข้อมูลให้เพื่อนท่านหนึ่งทาง msn โดยมีข้อตกลงว่า เขาจะต้องเขียนบทความอธิบายสิ่งที่ผมช่วยไป ส่งผม จึงเป็นที่มาของบทความนี้ เราไปดูกันว่าอะไรเกิดขึ้น อ่านบทความนี้ในรูปแบบเอกสารเวิร์ด บทความโดย : buarapa[at]hotmail.com ขอขอบคุณน้ำใจอันงาม ที่ยอมให้เอาบทความมาเผยแพร่ หลายท่านสงสัยกับการเรียงลำดับที่ถูกต้องของตัวหนังสือต้องเรียงจาก ก-ฮ,A-Z หรือตัวเลขต้อง1 2 3 … ∞ ว่าแต่มันก็เรียงอยู่แล้วนิ แต่การเรียงลำดับที่เก็บเป็นชนิดฟิลด์เป็นตัวหนังสือ มันเรียงลำดับถูกของมัน แต่ไม่ถูกของเรา มาดูกันครับ เรามีข้อมูลอยู่ในฟิลด์ id(int), idk(varchar), name(varchar) ชื่อตารางว่า money ข้อมูลในตารางมีดังนี้
ผมสร้างตาราง administrator มาตัวหนึ่ง มีฟิลด์หนึ่ง ชื่อ active ผมให้เก็บค่า 1 (active) กับค่า null (non-active) ปกติแล้วผมสนใจแต่คนที่ active อยู่เท่านั้น ปัญหาเลยไม่เจอ มาเมื่อไม่กี่วันนี้เอง อยากรู้รายชื่อของคนที่ non-active อยู่ ผมใช้คำสั่งนี้เลย
ฟังก์ชั่น ROUND() ใช้สำหรับปัดเศษทศนิยมของตัวเลข โดยยึดกฎว่า ถ้าต่ำกว่า 5 ปัดลง ถ้า 5 ขึ้นไปปัดขึ้น เช่น 10.4757 แล้วเราบอกว่า ต้องการตัวเลขทศนิยม 2 ตำแหน่งพอ จะได้ค่า 10.48 ถ้าบอกว่าเอาเฉพาะเลขตัวกลมเท่านั้น ไม่เอาทศนิยม จะได้ 10 เพราะทศนิยมตำแหน่งที่ 1 เท่ากับ 4 ปัดทิ้งสถานเดียว ไวยากรณ์ ROUND() SELECT ROUND(column_name,decimals) FROM TABLE_NAME Parameter คำอธิบาย column_name บังคับ. ฟิลด์ที่ต้องการ decimals บังคับ. ระบุจำนวนตำแหน่งทศนิยมของผลลัพธ์ที่ต้องการ
ฟังก์ชั่น LCASE() ใช้สำหรับแปลงค่าในฟิลด์ให้เป็นตัวเล็กทั้งหมด ไวยากรณ์ LCASE() SELECT LCASE(column_name) FROM TABLE_NAME