Giới thiệu
Có hai cách phổ biến để lấy giá trị lớn nhất (maximum) từ một cột kiểu số trong MySQL: sử dụng hàm MAX() hoặc sắp xếp giảm dần kết hợp LIMIT 1.
Cú pháp
-- Cách 1: Sử dụng hàm MAX() SELECT MAX(yourColumnName) FROM yourTableName; -- Cách 2: Sắp xếp DESC và lấy 1 bản ghi đầu SELECT * FROM yourTableName ORDER BY yourColumnName DESC LIMIT 1;
Ví dụ minh họa
Tạo bảng và chèn dữ liệu
mysql> CREATE TABLE DemoTable (
Value INT
);
mysql> INSERT INTO DemoTable VALUES(45), (87), (56), (77), (85);
Xem dữ liệu
mysql> SELECT * FROM DemoTable;
+-------+ | Value | +-------+ | 45 | | 87 | | 56 | | 77 | | 85 | +-------+
Cách 1: Dùng MAX()
mysql> SELECT MAX(Value) FROM DemoTable;
+------------+ | MAX(Value) | +------------+ | 87 | +------------+
Cách 2: Dùng ORDER BY ... LIMIT 1
mysql> SELECT * FROM DemoTable ORDER BY Value DESC LIMIT 1;
+-------+ | Value | +-------+ | 87 | +-------+
So sánh hai cách
| Tiêu chí | MAX() | ORDER BY ... LIMIT 1 |
|---|---|---|
| Hiệu năng | Tối ưu cho chỉ số (index) | Cũng tốt nếu có index |
| Linh hoạt | Chỉ trả về giá trị max | Trả về toàn bộ dòng dữ liệu |
| Độ phức tạp | Đơn giản | Hơi dài hơn |
Khuyến nghị: Nếu chỉ cần giá trị lớn nhất, dùng MAX(). Nếu cần cả các cột khác của dòng đó, dùng ORDER BY ... LIMIT 1.