Từ khóa LIMIT là gì?
Từ khóa giới hạn được sử dụng để giới hạn số hàng được trả về trong kết quả truy vấn.
Nó có thể được sử dụng cùng với các lệnh CHỌN, CẬP NHẬT HOẶC XÓA cú pháp từ khóa LIMIT
Cú pháp cho từ khóa LIMIT như sau
SELECT {fieldname(s) | *} FROM tableName(s) [WHERE condition] LIMIT N;
ĐÂY
- "SELECT {fieldname (s) | *} FROM tableName (s)" là câu lệnh SELECT chứa các trường mà chúng ta muốn trả về trong truy vấn của mình.
- "[Điều kiện WHERE]" là tùy chọn nhưng khi được cung cấp, có thể được sử dụng để chỉ định một bộ lọc trên tập kết quả.
- "LIMIT N" là từ khóa và N là bất kỳ số nào bắt đầu từ 0, đặt 0 làm giới hạn không trả về bất kỳ bản ghi nào trong truy vấn. Đặt một số cho biết 5 sẽ trả về năm bản ghi. Nếu các bản ghi trong bảng được chỉ định nhỏ hơn N, thì tất cả các bản ghi từ bảng được truy vấn sẽ được trả về trong tập kết quả.
Hãy xem một ví dụ -
SELECT * FROM members LIMIT 2;
membership_ number | full_ names | gender | date_of _birth | date_of _registration | physical_ address | postal_ address | contact_ number | credit_ card_ number | |
---|---|---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | NULL | First Street Plot No 4 | Private Bag | 0759 253 542 | This email address is being protected from spambots. You need JavaScript enabled to view it. | NULL |
2 | Janet Smith Jones | Female | 23-06-1980 | NULL | Melrose 123 | NULL | NULL | This email address is being protected from spambots. You need JavaScript enabled to view it. | NULL |
Như bạn có thể thấy từ ảnh chụp màn hình ở trên, chỉ có hai thành viên được trả lại.
Chỉ lấy danh sách mười (10) thành viên từ cơ sở dữ liệu
Giả sử rằng 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 tôi sẽ sử dụng tập lệnh sau để đạt được điều đó.
SELECT * FROM members LIMIT 10;
Thực thi đoạn mã trên cho chúng ta kết quả như hình bên dưới
membership_ number | full_ names | gender | date_of _birth | date_of _registration | physical_ address | postal_ address | contact_ number | credit_ card_ number | |
---|---|---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | NULL | First Street Plot No 4 | Private Bag | 0759 253 542 | This email address is being protected from spambots. You need JavaScript enabled to view it. | NULL |
2 | Janet Smith Jones | Female | 23-06-1980 | NULL | Melrose 123 | NULL | NULL | This email address is being protected from spambots. You need JavaScript enabled to view it. | NULL |
3 | Robert Phil | Male | 12-07-1989 | NULL | 3rd Street 34 | NULL | 12345 | This email address is being protected from spambots. You need JavaScript enabled to view it. | NULL |
4 | Gloria Williams | Female | 14-02-1984 | NULL | 2nd Street 23 | NULL | NULL | NULL | NULL |
5 | Leonard Hofstadter | Male | NULL | NULL | Woodcrest | NULL | 845738767 | NULL | NULL |
6 | Sheldon Cooper | Male | NULL | NULL | Woodcrest | NULL | 976736763 | NULL | NULL |
7 | Rajesh Koothrappali | Male | NULL | NULL | Woodcrest | NULL | 938867763 | NULL | NULL |
8 | Leslie Winkle | Male | 14-02-1984 | NULL | Woodcrest | NULL | 987636553 | NULL | NULL |
9 | Howard Wolowitz | Male | 24-08-1981 | NULL | SouthPark | P.O. Box 4563 | 987786553 | lwolowitz[at]email.me | NULL |
Lưu ý rằng chỉ có 9 thành viên được trả lại trong truy vấn của chúng tôi vì N trong mệnh đề LIMIT lớn hơn tổng số bản ghi trong bảng của chúng tôi.
Viết lại đoạn script trên như sau
SELECT * FROM members LIMIT 9;
Chỉ trả về 9 hàng trong tập kết quả truy vấn của chúng tôi.
Sử dụng TẮT SET trong truy vấn LIMIT
Các OFF SET giá trị cũng thường được sử dụng cùng với các từ khóa LIMIT. Giá trị OFF SET cho phép chúng tôi chỉ định hàng nào sẽ bắt đầu từ việc truy xuất dữ liệu
Giả sử rằng chúng ta muốn có một số lượng thành viên giới hạ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 để đạt được điều đó. Tập lệnh hiển thị bên dưới lấy dữ liệu bắt đầu từ hàng thứ hai và giới hạn kết quả là 2.
SELECT * FROM `members` LIMIT 1, 2;
Thực thi tập lệnh trên trong MySQL workbench với myflixdb sẽ cho kết quả sau.
membership_ number | full_ names | gender | date_of _birth | date_of _registration | physical_ address | postal_ address | contact_ number | credit_ card_ number | |
---|---|---|---|---|---|---|---|---|---|
2 | Janet Smith Jones | Female | 23-06-1980 | NULL | Melrose 123 | NULL | NULL | This email address is being protected from spambots. You need JavaScript enabled to view it. | NULL |
3 | Robert Phil | Male | 12-07-1989 | NULL | 3rd Street 34 | NULL | 12345 | This email address is being protected from spambots. You need JavaScript enabled to view it. | NULL |
Khi nào chúng ta nên sử dụng từ khóa LIMIT?
Giả sử rằng chúng tôi đang phát triển ứng dụng chạy trên myflixdb. Nhà thiết kế hệ thống của chúng tôi đã yêu cầu chúng tôi giới hạn số lượng bản ghi được hiển thị trên một trang, nói rằng 20 bản ghi trên mỗi trang để chống lại thời gian tải chậm. Làm thế nào để chúng ta triển khai hệ thống đáp ứng các yêu cầu của người dùng như vậy? Từ khóa LIMIT có ích trong những trường hợp như vậy. Chúng tôi có thể giới hạn kết quả trả về từ một truy vấn chỉ ở 20 bản ghi trên mỗi trang.
Tóm lược
- Từ khóa LIMIT được sử dụng để giới hạn số hàng được trả về từ một tập hợp kết quả.
- Số LIMIT có thể là bất kỳ số nào từ không (0) trở lên. Khi không (0) được chỉ định làm giới hạn, không có hàng nào được trả về từ tập kết quả.
- Giá trị OFF SET cho phép chúng tôi chỉ định hàng nào sẽ bắt đầu từ việc truy xuất dữ liệu
- Nó có thể được sử dụng cùng với các lệnh CHỌN, CẬP NHẬT HOẶC XÓA cú pháp từ khóa LIMIT