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

Xóa bản ghi có ID lớn nhất trong MySQL (ORDER BY DESC LIMIT 1)

Kết hợp ORDER BY cotId DESC với LIMIT 1 trong câu lệnh DELETE để xóa bản ghi có ID lớn nhất.

Ví dụ

Tạo bảng 6 bản ghi (UserId không liên tiếp):

mysql> create table DemoTable ( 
    UserId int, 
    UserName varchar(20) 
); 
Query OK, 0 rows affected (0.57 sec)

Dữ liệu: 100, 234, 145, 278, 289, 277 (MAX = 289)

Xóa ID lớn nhất

mysql> delete from DemoTable order by UserId DESC limit 1; 
Query OK, 1 row affected (0.15 sec)

Kiểm tra (289 đã bị xóa):

+--------+----------+
| UserId | UserName |
+--------+----------+
| 100    | John     |
| 234    | Mike     |
| 145    | Sam      |
| 278    | Carol    |
| 277    | Bob      |
+--------+----------+

Lưu ý: ORDER BY ... LIMIT trong DELETE được hỗ trợ từ MySQL 4.0. Đảm bảo có index trên cột ORDER BY để tránh filesort trên bảng lớn.

Cách an toàn hơn: DELETE FROM DemoTable WHERE UserId = (SELECT MAX(UserId) FROM DemoTable) - rõ ràng hơn, tránh nhầm lẫn khi có đồng thời.