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

Lấy giá trị MAX(id) của dữ liệu hàng trong MySQL?

Lấy giá trị lớn nhất (MAX) của cột trong MySQL

Sử dụng hàm tổng hợp MAX() để tìm giá trị lớn nhất của một cột (thường là cột ID tự động tăng).

Cú pháp

SELECT MAX(ten_cot) AS ten_alias FROM ten_bang;

Ví dụ minh họa

Tạo bảng DemoTable710:

mysql> CREATE TABLE DemoTable710 (Id INT);
Query OK, 0 rows affected (0.53 sec)

Chèn dữ liệu:

mysql> INSERT INTO DemoTable710 VALUES(1001);
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable710 VALUES(2001);
Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO DemoTable710 VALUES(1998);
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable710 VALUES(1789);
Query OK, 1 row affected (0.11 sec)
mysql> INSERT INTO DemoTable710 VALUES(1678);
Query OK, 1 row affected (0.18 sec)
mysql> INSERT INTO DemoTable710 VALUES(9087);
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable710 VALUES(1908);
Query OK, 1 row affected (0.17 sec)

Xem tất cả bản ghi:

mysql> SELECT * FROM DemoTable710;
+------+
| Id   |
+------+
| 1001 |
| 2001 |
| 1998 |
| 1789 |
| 1678 |
| 9087 |
| 1908 |
+------+
7 rows in set (0.00 sec)

Truy vấn lấy MAX(Id):

mysql> SELECT MAX(Id) AS Max_Id FROM DemoTable710;

Kết quả:

+--------+
| Max_Id |
+--------+
| 9087   |
+--------+
1 row in set (0.00 sec)

Các trường hợp sử dụng phổ biến

  • Lấy ID mới nhất: SELECT MAX(id) FROM users; (giả sử id là AUTO_INCREMENT)
  • Kết hợp GROUP BY: SELECT category_id, MAX(price) FROM products GROUP BY category_id;
  • Lấy toàn bộ hàng có giá trị MAX:
    SELECT * FROM DemoTable710 WHERE Id = (SELECT MAX(Id) FROM DemoTable710);
  • Hàm ngược lại: MIN() để lấy giá trị nhỏ nhất

Hiệu suất

Nếu cột có index (PRIMARY KEY, UNIQUE, INDEX), MAX() thực hiện rất nhanh (O(1) hoặc O(log n)) vì MySQL chỉ cần đọc node cuối cùng của B-tree index.