Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

วิธีดึงข้อมูลอย่างน้อยจำนวน x แถวใน MySQL

การใช้งานคำสั่ง 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 อันดับแรก