การใช้งานคำสั่ง LIMIT เพื่อจำกัดจำนวนแถวที่ต้องการ
ใน MySQL หากต้องการดึงข้อมูลอย่างน้อยจำนวนแถวที่กำหนด (เช่น 2 แถว, 5 แถว) สามารถใช้คำสั่ง LIMIT ร่วมกับ ORDER BY เพื่อจัดเรียงข้อมูลก่อนแล้วค่อยจำกัดจำนวนแถวที่ต้องการ
รูปแบบคำสั่ง (Syntax)
SELECT * FROM yourTableName ORDER BY yourColumnName DESC LIMIT yourXNumberOfRows;
ตัวอย่างการใช้งาน
สร้างตารางตัวอย่าง DemoTable:
CREATE TABLE DemoTable (
EmployeeId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
EmployeeName VARCHAR(100)
);
เพิ่มข้อมูลตัวอย่าง:
INSERT INTO DemoTable(EmployeeName) VALUES('Chris');
INSERT INTO DemoTable(EmployeeName) VALUES('David');
INSERT INTO DemoTable(EmployeeName) VALUES('Bob');
INSERT INTO DemoTable(EmployeeName) VALUES('Robert');
INSERT INTO DemoTable(EmployeeName) VALUES('Mike');
INSERT INTO DemoTable(EmployeeName) VALUES('Sam');
แสดงข้อมูลทั้งหมด:
SELECT * FROM DemoTable;
ผลลัพธ์:
+------------+--------------+
| EmployeeId | EmployeeName |
+------------+--------------+
| 1 | Chris |
| 2 | David |
| 3 | Bob |
| 4 | Robert |
| 5 | Mike |
| 6 | Sam |
+------------+--------------+
ดึงข้อมูล 2 แถว โดยจัดเรียงตามชื่อพนักงานจาก Z-A:
SELECT * FROM DemoTable ORDER BY EmployeeName DESC LIMIT 2;
ผลลัพธ์:
+------------+--------------+
| EmployeeId | EmployeeName |
+------------+--------------+
| 6 | Sam |
| 4 | Robert |
+------------+--------------+
สรุป
- ใช้
ORDER BYเพื่อจัดเรียงข้อมูลก่อน (ASC = น้อยไปมาก, DESC = มากไปน้อย) - ใช้
LIMIT nเพื่อจำกัดให้แสดงแค่ n แถวแรกหลังจากจัดเรียงแล้ว - เทคนิคนี้เหมาะสำหรับการดึงข้อมูล "Top N" เช่น พนักงานที่มียอดขายสูงสุด 5 อันดับแรก