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

Giới hạn kết quả chỉ lấy 5 bản ghi cuối cùng trong MySQL

Giới thiệu

Để lấy N bản ghi mới nhất (theo ID tự tăng hoặc thời gian), sắp xếp giảm dần (DESC) và dùng LIMIT N.

Ví dụ thực hành

1. Tạo bảng DemoTable820

mysql> CREATE TABLE DemoTable820 (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    CustomerName VARCHAR(100)
);

2. Chèn 6 khách hàng

mysql> INSERT INTO DemoTable820(CustomerName) VALUES
    ('Chris'),('Robert'),('David'),('Bob'),('Carol'),('Adam');

3. Lấy 5 bản ghi cuối (Id lớn nhất)

mysql> SELECT * FROM DemoTable820 ORDER BY Id DESC LIMIT 5;

4. Kết quả

+----+--------------+
| Id | CustomerName |
+----+--------------+
|  6 | Adam         |
|  5 | Carol        |
|  4 | Bob          |
|  3 | David        |
|  2 | Robert       |
+----+--------------+

Các biến thể

-- Lấy 5 bản ghi đầu (cũ nhất)
SELECT * FROM DemoTable820 ORDER BY Id ASC LIMIT 5;

-- Phân trang: trang 2, mỗi trang 5 hàng (bỏ 5 hàng đầu)
SELECT * FROM DemoTable820 ORDER BY Id DESC LIMIT 5 OFFSET 5;
-- Hoặc: LIMIT 5, 5 (cú pháp cũ)

-- Lấy 5 bản ghi cuối nhưng hiển thị theo thứ tự cũ->mới
SELECT * FROM (
    SELECT * FROM DemoTable820 ORDER BY Id DESC LIMIT 5
) AS t ORDER BY Id ASC;

Lưu ý

  • ORDER BY bắt buộc khi dùng LIMIT để kết quả xác định.
  • Index trên cột sắp xếp (Id) giúp ORDER BY ... LIMIT cực nhanh (chỉ đọc N hàng).
  • Tránh OFFSET lớn (ví dụ trang 10000) → chậm. Dùng keyset pagination: WHERE Id < last_seen_id ORDER BY Id DESC LIMIT 5.