การดึงข้อมูลอันดับบนสุด (Top N) ใน MySQL
เพื่อเลือกข้อมูลที่มีค่าสูงสุดหรือต่ำสุดตามลำดับ เราใช้ ORDER BY ร่วมกับ LIMIT
สร้างตารางและเพิ่มข้อมูลตัวอย่าง
mysql> CREATE TABLE DemoTable (Amount INT);
Query OK, 0 rows affected (0.73 sec)
mysql> INSERT INTO DemoTable VALUES(986);
mysql> INSERT INTO DemoTable VALUES(1010);
mysql> INSERT INTO DemoTable VALUES(769);
mysql> INSERT INTO DemoTable VALUES(989);
mysql> INSERT INTO DemoTable VALUES(999);
แสดงข้อมูลทั้งหมด
mysql> SELECT * FROM DemoTable;
ผลลัพธ์:
+--------+
| Amount |
+--------+
| 986 |
| 1010 |
| 769 |
| 989 |
| 999 |
+--------+
5 rows in set (0.00 sec)
คำสั่งเลือก 2 ค่าสูงสุด (Top 2)
mysql> SELECT * FROM DemoTable ORDER BY Amount DESC LIMIT 2;
ผลลัพธ์:
+--------+
| Amount |
+--------+
| 1010 |
| 999 |
+--------+
2 rows in set (0.00 sec)
คำอธิบาย
ORDER BY Amount DESC: เรียงลำดับจากมากไปน้อย (Descending)LIMIT 2: จำกัดผลลัพธ์เพียง 2 แถวแรก- หากต้องการค่าต่ำสุด ให้ใช้
ORDER BY Amount ASC(Ascending)