Kỹ thuật
Sử dụng mệnh đề IN() trong WHERE của câu lệnh DELETE để xóa nhiều bản ghi theo danh sách giá trị.
1. Tạo bảng
mysql> create table DemoTable (
ClientId varchar(40),
ClientName varchar(50)
);
Query OK, 0 rows affected (0.62 sec)
2. Chèn dữ liệu
mysql> insert into DemoTable values('CLI-101','Chris');
mysql> insert into DemoTable values('CLI-110','Adam');
mysql> insert into DemoTable values('CLI-220','Mike');
mysql> insert into DemoTable values('CLI-120','Bob');
mysql> insert into DemoTable values('CLI-240','Sam');
3. Xem dữ liệu
mysql> select * from DemoTable;
+----------+------------+ | ClientId | ClientName | +----------+------------+ | CLI-101 | Chris | | CLI-110 | Adam | | CLI-220 | Mike | | CLI-120 | Bob | | CLI-240 | Sam | +----------+------------+ 5 rows in set (0.00 sec)
4. Xóa các ID chỉ định
mysql> delete from DemoTable where ClientId IN('CLI-101','CLI-220','CLI-240');
Query OK, 3 rows affected (0.10 sec)
5. Kiểm tra lại
mysql> select * from DemoTable;
+----------+------------+ | ClientId | ClientName | +----------+------------+ | CLI-110 | Adam | | CLI-120 | Bob | +----------+------------+ 2 rows in set (0.00 sec)
Lưu ý: Luôn sao lưu dữ liệu trước khi chạy DELETE không có WHERE hoặc với danh sách lớn.