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

Truy vấn lấy ngày mới nhất từ bảng có cột DATE trong MySQL


Giới thiệu

Để lấy ngày lớn nhất (mới nhất) từ một cột kiểu DATE hoặc DATETIME, cách đơn giản nhất là sắp xếp giảm dần (DESC) và lấy bản ghi đầu tiên với LIMIT 1.

Ví dụ minh họa

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

mysql> CREATE TABLE DemoTable (
    DueDate DATE
);
mysql> INSERT INTO DemoTable VALUES 
('2018-10-01'), ('2016-12-31'), ('2019-07-02'), 
('2015-01-12'), ('2019-04-26');

Xem dữ liệu

mysql> SELECT * FROM DemoTable;
+------------+
| DueDate    |
+------------+
| 2018-10-01 |
| 2016-12-31 |
| 2019-07-02 |
| 2015-01-12 |
| 2019-04-26 |
+------------+

Truy vấn lấy ngày mới nhất

mysql> SELECT * FROM DemoTable ORDER BY DueDate DESC LIMIT 1;

Kết quả

+------------+
| DueDate    |
+------------+
| 2019-07-02 |
+------------+

Phương pháp thay thế: dùng MAX()

mysql> SELECT MAX(DueDate) FROM DemoTable;

Cách này trả về giá trị ngày lớn nhất nhưng không trả về toàn bộ dòng dữ liệu liên quan.

Lưu ý hiệu năng

  • Nên tạo index cho cột ngày nếu bảng lớn và truy vấn thường xuyên.
  • ORDER BY ... LIMIT 1 tận dụng index tốt nếu index được tạo đúng cách.