Computer >> Máy Tính >  >> Lập trình >> MySQL

Truy vấn MySQL để thực hiện thao tác xóa trong đó id là lớn nhất?

Bạn có thể sử dụng lệnh ORDER BY DESC với LIMIT 1 cho việc này vì chúng tôi chỉ cần xóa một ID duy nhất.

Đầu tiên chúng ta hãy tạo một bảng -

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

Chèn bản ghi vào bảng bằng lệnh chèn -

mysql> insert into DemoTable values(100,'John');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values(234,'Mike');
Query OK, 1 row affected (0.28 sec)
mysql> insert into DemoTable values(145,'Sam');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable values(278,'Carol');
Query OK, 1 row affected (0.24 sec)
mysql> insert into DemoTable values(289,'David');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values(277,'Bob');
Query OK, 1 row affected (0.14 sec)

Hiển thị các bản ghi từ bảng bằng lệnh select -

mysql> select *from DemoTable;

Điều này sẽ tạo ra kết quả sau -

+--------+----------+
| UserId | UserName |
+--------+----------+
| 100    | John     |
| 234    | Mike     |
| 145    | Sam      |
| 278    | Carol    |
| 289    | David    |
| 277    | Bob      |
+--------+----------+
6 rows in set (0.00 sec)

Sau đây là truy vấn để thực hiện xóa trong đó id là lớn nhất -

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

Hãy để chúng tôi hiển thị tất cả các bản ghi từ bảng để kiểm tra id lớn nhất đã bị xóa hay chưa. Tại đây, id 289 đã được xóa thành công -

mysql> select *from DemoTable;

Điều này sẽ tạo ra kết quả sau -

+--------+----------+
| UserId | UserName |
+--------+----------+
| 100    | John     |
| 234    | Mike     |
| 145    | Sam      |
| 278    | Carol    |
| 277    | Bob      |
+--------+----------+
5 rows in set (0.00 sec)