การเรียงลำดับข้อมูล

         การจัดการข้อมูลจำเป็นต้องมีการจัดเรียงลำดับข้อมูล เพื่อง่ายแก่การดูและตัดสินใจ เพื่อจะได้นำไปใช้ประโยชน์ ได้ตรงตามความต้องการ  เช่น ฝ่ายบุคลากรต้องการทราบข้อมูลของพนักงานที่มีเงินเดือนเรียงลำดับจากมากไปหาน้อย เพื่อนำไปคำนวนหาฐานเงินเดือน  การจัดลำดับข้อมูล Sort Data มีรูปแบบคำสั่งมีดังต่อไปนี้

         รูปแบบคำสั่งการจัดลำดับข้อมูล 
 

       รูปแบบคำสั่งจัดลำดับข้อมูล
       SELECT fieldname  FROM tablename ORDER BY  fieldname;

        คำอธิบาย
       SELECT fieldname  FROM tablename ORDER BY  fieldname;
        SELECT เป็นคำสั่งขอดูข้อมูล
        fieldnameเป็นคำสั่งเลือกดูข้อมูลใน field (ถ้าต้องการเลือกทุก field ให้ใช้เครื่องหมาย *)
       ORDER BYคำสั่งจัดเรียงลำดับข้อมูล
        fieldname เป็นชื่อ field ที่ต้องการเรียง

       ตัวอย่าง
        SELECT * FROM phonebook ORDER BY  salary;
 

 วิธีการทำ 1
         ให้ขอดูข้อมูลทั้งหมดในตาราง phonebook (ได้สร้างมาตั้งแต่ตอนที่แล้ว) โดยจัดเรียงลำดับจากคนที่มีเงินเดือนน้อยที่สุด  ผลลัพธ์ดังภาพข้างล่าง
 

mysql>
mysql> SELECT * FROM phonebook ORDER BY salary;
+----------+----------------------+---------+--------+----+
| name     | email                | phone   | salary | ID |
+----------+----------------------+---------+--------+----+
| passkorn | ccpasskn@hotmail.com |  223102 |  10000 |  1 |
| somjai   | somjai@chaiyo.com    | 4410330 |  15000 |  5 |
| parinya  | parinya@thai.com     |  612069 |  20000 |  2 |
| somchai  | somchai@stjohn.com   | 9387059 |  30000 |  3 |
| sangchai | sangchai@chaiyo.com  | 7127000 |  50000 |  4 |
| sangtong | sangtong@mco.net     |  975899 |  50000 |  6 |
+----------+----------------------+---------+--------+----+
6 rows in set (0.01 sec)

mysql> 

       จะเห็นว่าข้อมูลที่ field "salary" มีการจัดเรียงลำดับจากคนที่มีเงินเดือนมากที่สุดไปหาคนที่มีเงินเดือนน้อยที่สุด

วิธีการทำ 2
         ให้ขอดูข้อมูลทั้งหมดในตาราง phonebook เฉพาะโดยเรียงลำดับชื่อคน ใน field "name" จากตัวอักษรในพยัญชนะอังกฤษตัวแรกไปหาตัวสุดท้าย ผลลัพธ์ดังภาพข้างล่าง
 

mysql>
mysql> SELECT * FROM phonebook ORDER BY name;
+----------+----------------------+---------+--------+----+
| name     | email                | phone   | salary | ID |
+----------+----------------------+---------+--------+----+
| parinya  | parinya@thai.com     |  612069 |  20000 |  2 |
| passkorn | ccpasskn@hotmail.com |  223102 |  10000 |  1 |
| sangchai | sangchai@chaiyo.com  | 7127000 |  50000 |  4 |
| sangtong | sangtong@mco.net     |  975899 |  50000 |  6 |
| somchai  | somchai@stjohn.com   | 9387059 |  30000 |  3 |
| somjai   | somjai@chaiyo.com    | 4410330 |  15000 |  5 |
+----------+----------------------+---------+--------+----+
6 rows in set (0.00 sec)

mysql> 

       จะเห็นว่าข้อมูลที่ field "name" ถูกเรียงอักษรจากตัวแรกไปหาตัวสุดท้าย

วิธีการทำ 3
         ให้ขอดูข้อมูลทั้งหมดในตาราง phonebook เฉพาะคนที่มีชื่อขึ้นต้นด้วยตัวอักษร S โดยจัดเรียงลำดับจากคนที่มีเงินเดือนมากที่สุดไปหาน้อยที่สุด ผลลัพธ์ดังภาพข้างล่าง
 

mysql>
mysql> SELECT * FROM phonebook WHERE (name LIKE 's%') ORDER BY salary;
+----------+---------------------+---------+--------+----+
| name     | email               | phone   | salary | ID |
+----------+---------------------+---------+--------+----+
| somjai   | somjai@chaiyo.com   | 4410330 |  15000 |  5 |
| somchai  | somchai@stjohn.com  | 9387059 |  30000 |  3 |
| sangchai | sangchai@chaiyo.com | 7127000 |  50000 |  4 |
| sangtong | sangtong@mco.net    |  975899 |  50000 |  6 |
+----------+---------------------+---------+--------+----+
4 rows in set (0.00 sec)

mysql>

       จะเห็นว่าข้อมูลที่ field "name" ถูกเลือกเฉพาะคนที่ขึ้นต้นด้วยตัว "S" และจัดเรียงลำดับจากคนที่มีเงินเดือนน้อยที่สุดไปหามากที่สุด



Copyright By Passkorn Roungrong 2000