Mệnh đề LIMIT trong MySQL được sử dụng để giới hạn số lượng hàng được trả về bởi một truy vấn. Nó thường được sử dụng trong các câu lệnh SELECT, nhưng cũng có thể được áp dụng cho UPDATE hoặc DELETE để hạn chế số lượng bản ghi được cập nhật hoặc xóa.

Cú pháp cơ bản của mệnh đề LIMIT như sau:

number_of_rows

Kết quả sẽ chỉ trả về 5 hàng đầu tiên trong bảng customers.

2. Bỏ qua 10 hàng đầu tiên và lấy 5 hàng tiếp theo:

LIMIT

Truy vấn này sẽ trả về 10 người dùng có trạng thái "active", được sắp xếp theo thứ tự ngày tạo mới nhất (giảm dần).

Sử dụng LIMIT với mệnh đề UPDATEDELETE

  • UPDATE với LIMIT: Khi bạn sử dụng UPDATE, bạn có thể giới hạn số lượng bản ghi được cập nhật bằng cách thêm LIMIT.
DELETE

Câu lệnh này sẽ xóa 3 bản ghi đầu tiên trong phòng HR.

Lưu ý:

  • Khi bạn không chỉ định offset, MySQL sẽ mặc định bắt đầu từ hàng đầu tiên.
  • Mệnh đề LIMIT thường được sử dụng trong các tình huống phân trang khi bạn muốn hiển thị dữ liệu theo từng trang (ví dụ: 10 hàng mỗi trang).

Phân trang với LIMITOFFSET

Khi bạn cần phân trang kết quả, mệnh đề LIMIT rất hữu ích. Cách này thường được kết hợp với các mệnh đề ORDER BY để đảm bảo kết quả nhất quán.

Ví dụ, bạn có 100 bản ghi và muốn hiển thị 10 bản ghi mỗi trang. Để hiển thị trang thứ 2, bạn sẽ bỏ qua 10 bản ghi đầu tiên và lấy 10 bản ghi tiếp theo:

SELECT * FROM products
ORDER BY product_id
LIMIT 10 OFFSET 10;

Hoặc tương đương:

SELECT * FROM products
ORDER BY product_id
LIMIT 10, 10;

Câu lệnh này sẽ trả về 10 bản ghi bắt đầu từ bản ghi thứ 11 đến thứ 20.

Kết luận

Mệnh đề LIMIT trong MySQL rất quan trọng khi làm việc với các tập dữ liệu lớn, giúp bạn kiểm soát số lượng hàng được xử lý và hiển thị trong các truy vấn SQL.