MySQL GIỚI HẠN & BẮT ĐẦU với các ví dụ
Từ khóa LIMIT là gì?
Từ khóa giới hạn được sử dụng để giới hạn số lượng hàng được trả về trong kết quả truy vấn.
Nó có thể được sử dụng kết hợp 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 của từ khóa LIMIT như sau
SELECT {fieldname(s) | *} FROM tableName(s) [WHERE condition] LIMIT N;
tại ĐÂY
- “CHỌN {tên trường | *} TỪ (các) tên bảng” là Câu lệnh SELECT chứa các trường mà chúng tôi 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 bộ lọc trên tập kết quả.
- “GIỚI HẠN 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 sẽ không trả về bất kỳ bản ghi nào trong truy vấn. Đặt một số nói 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 | janetjones@yagoo.cm | NULL |
2 | Janet Smith Jones | Female | 23-06-1980 | NULL | Melrose 123 | NULL | NULL | jj@fstreet.com | 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.
Lấy danh sách mười (10) thành viên chỉ 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 sẽ sử dụng tập lệnh sau để thực hiện điều đó.
SELECT * FROM members LIMIT 10;
Thực thi đoạn script trên cho chúng ta kết quả 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 | janetjones@yagoo.cm | NULL |
2 | Janet Smith Jones | Female | 23-06-1980 | NULL | Melrose 123 | NULL | NULL | jj@fstreet.com | NULL |
3 | Robert Phil | Male | 12-07-1989 | NULL | 3rd Street 34 | NULL | 12345 | rm@tstreet.com | 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ả về 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
Sản phẩm BÙ LẠI giá trị cũng thường được sử dụng cùng với từ khóa LIMIT. Giá trị OFF SET cho phép chúng ta chỉ định hàng nào sẽ bắt đầu lấy dữ liệu
Giả sử rằng chúng ta muốn có 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ả ở mức 2.
SELECT * FROM `members` LIMIT 1, 2;
Thực thi đoạn script trên trong MySQL so sánh workbench với myflixdb cho kết quả như 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 | jj@fstreet.com | NULL |
3 | Robert Phil | Male | 12-07-1989 | NULL | 3rd Street 34 | NULL | 12345 | rm@tstreet.com | NULL |
Note that here OFFSET = 1 Hence row#2 is returned & Limit = 2, Hence only 2 records are returned
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. Người 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 là 20 bản ghi trên mỗi trang để tránh thời gian tải chậm. Chúng ta sẽ triển khai hệ thống như thế nào để đáp ứng được những yêu cầu đó của người dùng? Từ khóa LIMIT có ích trong những tình huống như vậy. Chúng tôi có thể giới hạn kết quả trả về từ một truy vấn ở mức chỉ 20 bản ghi trên mỗi trang.
Tổng kết
- Từ khóa LIMIT được sử dụng để giới hạn số lượng hàng được trả về từ tập kết quả.
- Số LIMIT có thể là bất kỳ số nào từ 0 (0) trở lên. Khi số XNUMX (XNUMX) đượ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 ta chỉ định hàng nào sẽ bắt đầu lấy dữ liệu
- Nó có thể được sử dụng kết hợp với các lệnh CHỌN, CẬP NHẬT HOẶC XÓA cú pháp từ khóa LIMIT