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

Cách sắp xếp 5 bản ghi cuối theo ID trong MySQL

Để lấy 5 bản ghi mới nhất (theo ID) và sắp xếp chúng theo thứ tự tăng dần, sử dụng truy vấn con (subquery).

Tạo bảng và chèn dữ liệu

mysql> CREATE TABLE DemoTable (Id INT);
mysql> INSERT INTO DemoTable VALUES(100), (115), (200), (140), (124), (198), (156), (178), (156);

Xem toàn bộ dữ liệu (không theo thứ tự)

mysql> SELECT * FROM DemoTable;
+------+
| Id   |
+------+
| 100  |
| 115  |
| 200  |
| 140  |
| 124  |
| 198  |
| 156  |
| 178  |
| 156  |
+------+

Truy vấn lấy 5 bản ghi cuối và sắp xếp tăng dần

mysql> SELECT * FROM (
    ->     SELECT * FROM DemoTable ORDER BY Id DESC LIMIT 5
    -> ) AS tbl ORDER BY Id;
+------+
| Id   |
+------+
| 156  |
| 156  |
| 178  |
| 198  |
| 200  |
+------+

Giải thích logic

  1. Truy vấn con: SELECT * FROM DemoTable ORDER BY Id DESC LIMIT 5 lấy 5 ID lớn nhất (mới nhất)
  2. Truy vấn cha: Sắp xếp lại 5 bản ghi đó theo ORDER BY Id (tăng dần)
  3. Kết quả: 5 bản ghi mới nhất hiển thị từ cũ đến mới

Cách viết gọn hơn (MySQL 8.0+)

SELECT * FROM DemoTable ORDER BY Id DESC LIMIT 5 ORDER BY Id;

Hoặc dùng CTE:

WITH Latest5 AS (
    SELECT * FROM DemoTable ORDER BY Id DESC LIMIT 5
)
SELECT * FROM Latest5 ORDER BY Id;