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.