SQL order by ให้ถูกใจเจ้านาย

January 2010 | By platoosom | MySQL, SQL | Tags : , , , | อ่าน : 971

คำสั่งที่ใช้สำหรับดึงข้อมูลออกจากฐานข้อมูล พร้อมทั้งจัดเรียงมันออกมาด้วยนั้น เขาใช้คำสั่ง order by

ข้อมูลที่ถูกจัดเรียงนั้น สามารถกำหนดให้เรียงมากไปหาน้อย หรือน้อยไปหามากก็ได้ ถ้าเป็นตัวอักษรน้อยไปหามาก มันก็จะเรียงจาก a-z ถ้าเป็นตัวเลข ก็จะเรียงจาก 0 ขึ้นไปเรื่อยๆ

ทีนี้มันมีปัญหาอยู่ว่า ถ้าเราต้องการ ให้ bangkok มันขึ้นก่อน แล้วค่อยเป็น Sandnes แล้วจึงเป็น Indo

City
Sandnes
Bangkok
Indo

ความต้องการอย่างนี้เราต้องใช้ฟังก์ชั่นเข้าช่วย แปลงคำให้เป็นตัวเลข แล้วค่อยจัดเรียง

SELECT * FROM tbl_city ORDER BY 
  (
       CASE city_name
       WHEN "Bangkok" 	THEN 1
       WHEN "Sandnes" 	THEN 2
       ELSE 3 END
  ) ASC

เราใช้ CASE เข้าช่วย ถ้า ฟิลด์ city_name มีค่า Bangkok ให้แปลงค่าเป็น 1 ถ้า Sandnes ก็ให้เป็น 2 ถ้านอกเหนือจากนั้นก็ให้เป็น 3 พอจัดเรียงมันก็ Bangkok จะมาก่อน

นี่ละครับเทคนิคการ order by แบบ advance

บทความน่าสนใจ

  1. SQL ORDER BY Keyword
  2. mySQL กับค่า NULL
  3. วิธีใช้คำสั่ง substring ของ mysql ประยุกต์จัดเรียงข้อมูลในฐานข้อมูล
  4. SELECT DISTINCT
  5. SQL LCASE() Function

ผู้เขียน: วัชรเมธน์ ชิษณุคุปต์ ศรีเนธิโรทัย

เว็บไซต์ :http://www.select2web.com

งานเล็กๆก็ยิ่งใหญ่ได้ ถ้าอยู่ในที่ๆเหมาะสม

มี 2 ความเห็น ในบทความเรื่อง “SQL order by ให้ถูกใจเจ้านาย”

  1. krunot says:

    โห แจ่มเลยพี่ปลา ขอบคุณมากครับพี่ที่หาแต่สิ่งดีดีมาฝาก

  2. พี่ปลาทู นี่ผมนับเป็นครูคนนึง ของผมเลยทีเดียวครับ เยี่ยมไปเลยครับพี่ปลาทู

แสดงความเห็น

ชื่อ *
Email *
Website
ความคิดเห็น