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

Xóa chỉ các hàng cụ thể trong bảng MySQL

Sử dụng mệnh đề DELETE ... WHERE ... NOT IN để xóa các hàng không nằm trong danh sách ID cho trước.

Ví dụ minh họa

Tạo bảng với AUTO_INCREMENT bắt đầu từ 101:

mysql> CREATE TABLE DemoTable1830 (
    StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentName VARCHAR(20)
) AUTO_INCREMENT=101;

Chèn dữ liệu:

mysql> INSERT INTO DemoTable1830(StudentName) VALUES('Chris'),('David'),('Mike'),('Sam'),('Bob');

Xóa các hàng KHÔNG có ID 101, 103, 105 (giữ lại 3 hàng này):

mysql> DELETE FROM DemoTable1830 WHERE StudentId NOT IN('101','103','105');

Kết quả sau xóa:

+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
|       101 | Chris       |
|       103 | Mike        |
|       105 | Bob         |
+-----------+-------------+

Mẹo: Luôn kiểm tra bằng SELECT trước khi chạy DELETE để tránh mất dữ liệu nhầm lẫn.