Bài 15: 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

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ếp limit 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

Ví dụ 1: Lấy 20 sinh viên đầu tiên trong kết quả

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.

Ví dụ 2: lấy ra 5 sinh viên có năm sinh lớn nhất

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.

Hãy để lại link bài viết gốc khi chia sẻ bài viết này, mình sẽ report DMCA với những website lấy nội dung mà không để nguồn hoặc copy bài với số lượng lớn.

Nguồn: freetuts.net

Profile photo of adminTheHalfHeart

TheHalfHeart

Có sở thích viết tuts nên đã từng tham gia viết ở một số diễn đàn, đến năm 2014 mới có điều kiện sáng lập ra freetuts.net. Sinh năm 90 và có 1 vợ 2 con, thích ca hát và lập trình.

ĐĂNG BÌNH LUẬN: Đăng câu hỏi trên Group Facebook để được hỗ trợ nhanh nhất.