MySQL LIMIT & OFFSET với các ví dụ

Anonim

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 email 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 email 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 email 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
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. 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