Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Lấy 10 hàng đầu rồi các hàng còn lại trong một truy vấn MySQL

Tạo bảng với 16 bản ghi:

mysql> CREATE TABLE DemoTable (Id INT); Query OK, 0 rows affected (0.71 sec)
mysql> INSERT INTO DemoTable VALUES(100),(101),(102),(103),(104),(105),(106),(107),(108),(109),(110),(111),(112),(113),(114),(115);

Hiển thị tất cả:

mysql> SELECT * FROM DemoTable;

Kết quả (16 hàng): 100 đến 115.

Truy vấn lấy tất cả (LIMIT lớn, OFFSET 0):

mysql> SELECT * FROM DemoTable LIMIT 999 OFFSET 0;

Kết quả: trả về toàn bộ 16 hàng.

Giải thích: LIMIT 999 OFFSET 0 thực chất lấy tất cả (vì 999 > tổng số hàng). Cách này thường dùng khi muốn viết một truy vấn thống nhất cho cả "lấy N hàng đầu" và "lấy phần còn lại" bằng cách thay đổi OFFSET.

Phân trang thực tế: Trang 1: LIMIT 10 OFFSET 0, Trang 2: LIMIT 10 OFFSET 10, v.v.