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

Cách nhanh nhất lấy giá trị lớn nhất cột trong MySQL: MAX() vs ORDER BY LIMIT

Hai cách lấy Max:

  1. SELECT MAX(cot) FROM bang;
  2. SELECT cot FROM bang ORDER BY cot DESC LIMIT 1;

Cách 1 nhanh hơn vì MySQL tối ưu MAX() (chỉ quét index/cột một lần). Cách 2 phải sắp xếp toàn bộ rồi lấy 1.

Tạo bảng:

mysql> CREATE TABLE DemoTable (Number INT); Query OK, 0 rows affected (0.59 sec)

Chèn dữ liệu:

mysql> INSERT INTO DemoTable VALUES(78),(87),(89),(69),(87);

Dùng MAX():

mysql> SELECT MAX(Number) FROM DemoTable;

Kết quả:

+-------------+
| max(Number) |
+-------------+
| 89          |
+-------------+
1 row in set (0.06 sec)

Khuyến nghị: Luôn dùng MAX()/MIN() cho giá trị cực đại. Chỉ dùng ORDER BY ... LIMIT 1 khi cần cả hàng dữ liệu kèm theo (ví dụ: lấy toàn bộ hàng có giá trị lớn nhất).