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

Cách lấy hàng có ID lớn nhất trong MySQL


Phương pháp: ORDER BY + LIMIT

Sắp xếp giảm dần theo cột ID và lấy 1 hàng đầu tiên:

SELECT * FROM ten_bang ORDER BY ten_cot_id DESC LIMIT 1 OFFSET 0;

Ví dụ chi tiết

1. Tạo bảng

mysql> CREATE TABLE HighestIdOrderBy ( 
-> EmployeeId INT, 
-> EmployeeName VARCHAR(200) 
-> ); 
Query OK, 0 rows affected (0.58 sec)

2. Chèn dữ liệu

mysql> INSERT INTO HighestIdOrderBy VALUES(200,'David'); 
Query OK, 1 row affected (0.20 sec) 
mysql> INSERT INTO HighestIdOrderBy VALUES(1000,'Bob'); 
Query OK, 1 row affected (0.18 sec) 
mysql> INSERT INTO HighestIdOrderBy VALUES(600,'John'); 
Query OK, 1 row affected (0.16 sec) 
mysql> INSERT INTO HighestIdOrderBy VALUES(300,'Johnson'); 
Query OK, 1 row affected (0.18 sec) 
mysql> INSERT INTO HighestIdOrderBy VALUES(100,'Carol'); 
Query OK, 1 row affected (0.12 sec)

3. Dữ liệu ban đầu

mysql> SELECT * FROM HighestIdOrderBy;
+------------+--------------+ 
| EmployeeId | EmployeeName | 
+------------+--------------+ 
| 200        | David        | 
| 1000       | Bob          | 
| 600        | John         | 
| 300        | Johnson      | 
| 100        | Carol        | 
+------------+--------------+ 
5 rows in set (0.00 sec)

4. Truy vấn ID lớn nhất

mysql> SELECT * FROM HighestIdOrderBy ORDER BY EmployeeId DESC LIMIT 1 OFFSET 0;
+------------+--------------+ 
| EmployeeId | EmployeeName | 
+------------+--------------+ 
| 1000       | Bob          | 
+------------+--------------+ 
1 row in set (0.00 sec)

Các phương pháp thay thế

Sử dụng MAX() - Chỉ lấy giá trị ID

SELECT MAX(EmployeeId) FROM HighestIdOrderBy;

Subquery - Lấy toàn bộ hàng

SELECT * FROM HighestIdOrderBy WHERE EmployeeId = (SELECT MAX(EmployeeId) FROM HighestIdOrderBy);

So sánh hiệu năng

Phương phápƯu điểmNhược điểm
ORDER BY ... LIMIT 1Đơn giản, lấy toàn bộ hàngQuét index nếu không có index trên cột ID
MAX()Rất nhanh với indexChỉ trả về giá trị ID, không phải hàng hoàn chỉnh
Subquery với MAX()Lấy hàng hoàn chỉnh, tận dụng indexCú pháp phức tạp hơn

Khuyến nghị

Nên tạo index cho cột ID (thường là PRIMARY KEY) để tối ưu hiệu năng cho cả hai phương pháp.