Giới hạn kết quả trả về với LIMIT trong MySQL
Khi sử dụng lệnh SELECT để lấy danh sách trong bảng thì nó sẽ trả về tất cả các record luôn, nghĩa là trong bảng của bạn có bao nhiêu records thì nó sẽ trả về tất tần tật. Điều này thật sự không hay khi bạn làm các ứng dụng Website. Giải pháp của chúng ta là sử dụng lệnh LIMIT để giới hạn hết quả trả về.
1. Giới thiệu lệnh LIMIT trong MySQL
Lệnh LIMIT đi kèm với lệnh SELECT và thông thường nó nằm ở cuối cùng. Trong thuật toán phân trang sẽ sử dụng lệnh LIMIT để xác định kết quả cho mỗi trang, điều này thật sự rất là hữu ích vì nó tăng tốc độ load trang hơn.
Cú pháp LIMIT như sau:
Bài viết này được đăng tại [free tuts .net]
SELECT field1, field2 FROM table_name WHERE ... ORDER BY column_name, order_type LIMIT start, limit
Trong đó:
- ORDER BY là kiểu sắp xếp
- Ở LIMIT ta có:
start
: lấy từ record thứstart
limit
: bắt đầu từstart
và lấy tiếplimit
records.
Ví dụ: Lấy danh sách 20 sinh viên và bỏ đi 10 records đầu tiên trong kết quả trả về (bỏ đi 10 records tức là ta sẽ xác định start = 10)
SELECT * FROM SINHVIEN LIMIT 10, 20
2. Một số ví dụ khác với lệnh LIMIT trong MySQL
SELECT * FROM SINHVIEN LIMIT 20
Trong trường hợp này các bạn thấy tôi chỉ truyền một tham số là LIMIT 20 thôi và kết quả nó sẽ trả về 20 rows đầu tiên.
Như vậy để lấy N rows đâu tiên thì ta chỉ cần truyền số đó là được.
Trường hợp này ta phải kết hợp với lệnh ORDER BY để sắp xếp theo sinh viên, sau đó dùng lệnh LIMIT để lấy 5 sinh viên đầu tiên.
SELECT * FROM SINHVIEN ORDER BY NamSinh DESC LIMIT 5
Hoặc:
SELECT * FROM SINHVIEN ORDER BY NamSinh DESC LIMIT 0, 5
3. Lời kết
Lệnh LIMIT trong MySQL cũng không có gì phức tạp nên bài này cũng tương đối đơn giản. Bài tiếp theo chúng ta sẽ tìm hiểu về cách sử dụng Alias.