Vấn đề:
Bạn muốn giới hạn số hàng do truy vấn trong MySQL, PostgreSQL hoặc SQLite.
Ví dụ:
Trong exam
bảng, có tên của học sinh với kết quả của kỳ thi.
name | exam_result |
---|---|
Janet Morgen | 9 |
Taya Bain | 11 |
Anne Johnson | 11 |
Josh Kaur | 10 |
Ellen Thornton | 8 |
Bạn muốn có được ba hàng với kết quả kiểm tra tốt nhất.
Giải pháp:
SELECT * FROM exam ORDER BY exam_result DESC LIMIT 3;
Kết quả của truy vấn trông giống như sau:
name | exam_result |
---|---|
Taya Bain | 11 |
Anne Johnson | 11 |
Josh Kaur | 10 |
Thảo luận:
Đầu tiên, hãy sắp xếp các hàng theo exam_result
theo thứ tự giảm dần bằng cách sử dụng ORDER BY
và mệnh đề DESC
từ khóa. Sau đó, sau ORDER BY
, sử dụng LIMIT
từ khóa với một số hàng bạn muốn trả lại (tại đây, 3
).
ORDER BY exam_result DESC LIMIT 3
Nếu bạn muốn lấy ngẫu nhiên ba hàng thay vì ba hàng tốt nhất, hãy bỏ qua ORDER BY
một phần.
SELECT * FROM exam LIMIT 3;
Tất nhiên, bạn có thể lấy bất kỳ số hàng nào bạn muốn. Chỉ cần thay thế 3 với số bạn muốn.