Giới hạn từ khóa (Limit keyword) là gì?
Giới hạn từ khóa được sử dụng để giới hạn số hàng trả về trong kết quả truy vấn trong bảng dữ liệu. Không chỉ sử dụng trong lệnh SELECT, nó còn có thể được áp dụng trong các lệnh UPDATE và DELETE.
Cú pháp cho từ khóa LIMIT như sau:
SELECT {fieldname(s) | *} FROM tableName(s) [WHERE condition] LIMIT N;
"SELECT {fieldname(s) | *} FROM tableName(s)"
là câu lệnh SELECT chứa các trường mà chúng ta muốn hiển thị trong kết quả truy vấn."[WHERE condition]"
là một phần tùy chọn nhưng khi được cung cấp, nó sẽ được sử dụng để áp dụng bộ lọc trên tập kết quả."LIMIT N"
là từ khóa vàN
là một con số bắt đầu từ 0. KhiN
được đặt là 0, không có hàng nào sẽ được trả về trong truy vấn. Nếu số lượng bản ghi trong bảng là nhỏ hơnN
, tất cả các bản ghi từ bảng truy vấn sẽ được trả về.
Hãy xem ví dụ sau:
SELECT * FROM members LIMIT 2;
Hình ảnh minh họa
Như bạn có thể thấy, kết quả chỉ hiển thị 2 thành viên trong bảng.
Lấy danh sách 10 thành viên từ cơ sở dữ liệu
Giả sử chúng ta muốn lấy danh sách 10 thành viên đã đăng ký đầu tiên từ cơ sở dữ liệu Myflix. Chúng ta chỉ cần sử dụng lệnh sau:
SELECT * FROM members LIMIT 10;
Chạy đoạn script trên sẽ cho chúng ta kết quả như sau:
Hình ảnh minh họa
Lưu ý rằng chỉ có 9 thành viên trong kết quả truy vấn của chúng ta vì số lượng hàng trong LIMIT lớn hơn tổng số bản ghi trong bảng.
Viết lại đoạn script trên như sau:
SELECT * FROM members LIMIT 9;
Trong tập kết quả truy vấn của chúng ta chỉ có 9 hàng.
Sử dụng lệnh Offset (Tắt thiết lập) trong Limit query (truy vấn giới hạn)
Offset thường được sử dụng cùng với từ khóa LIMIT. Offset cho phép chúng ta chỉ định từ hàng nào sẽ bắt đầu khi truy xuất dữ liệu.
Giả sử chúng ta muốn hạn chế số lượng thành viên bắt đầu từ giữa các hàng, chúng ta có thể sử dụng từ khóa LIMIT cùng với giá trị Offset. Dưới đây là ví dụ với dữ liệu bắt đầu từ hàng 2 và giới hạn kết quả là 2.
SELECT * FROM members LIMIT 1, 2;
Chạy đoạn script trên sẽ cho kết quả như sau:
Hình ảnh minh họa
Lưu ý rằng ở đây OFFSET = 1
. Do đó, kết quả bắt đầu từ hàng 2 và LIMIT = 2
, do đó chỉ có 2 bản ghi được trả về.
Khi nào chúng ta nên sử dụng từ khóa LIMIT?
Giả sử chúng ta đang phát triển một ứng dụng chạy trên myflixdb. Nhà thiết kế hệ thống yêu cầu chúng ta giới hạn số lượng bản ghi hiển thị trên một trang là 20 bản ghi để tải trang nhanh hơn. Làm thế nào chúng ta có thể đáp ứng yêu cầu này? Từ khóa LIMIT là một công cụ hữu ích trong các tình huống như vậy. Chúng ta có thể giới hạn kết quả truy vấn chỉ trả về 20 bản ghi trên mỗi trang.
Tóm lược
- Giới hạn từ khóa được sử dụng để giới hạn số lượng hàng được trả về trong kết quả truy vấn.
- Giới hạn số có thể là bất kỳ số nào từ 0 trở lên. Khi 0 được đặt làm giới hạn, không có hàng nào sẽ được trả về từ kết quả truy vấn.
- Giá trị OFFSET cho phép chúng ta chỉ định từ hàng nào sẽ bắt đầu khi truy xuất dữ liệu.
- Từ khóa LIMIT có thể được sử dụng cùng với các lệnh SELECT, UPDATE hoặc DELETE.
Hãy tham gia khóa học SQL cùng Gitiho để học sâu về cách sử dụng MySQL. Gitiho chúc bạn thành công!