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

Làm cách nào để xóa tất cả các bản ghi trùng lặp trong bảng MySQL?

Để xóa các bản ghi trùng lặp khỏi bảng, chúng ta có thể sử dụng lệnh DELETE. Bây giờ chúng ta hãy tạo một bảng.

mysql> create table DuplicateDeleteDemo
   -> (
   -> id int,
   -> name varchar(100)
   -> );
Query OK, 0 rows affected (0.60 sec)

Chèn bản ghi vào bảng “DuplicateDeleteDemo”:Ở đây, chúng tôi đã thêm “John” làm bản ghi trùng lặp 3 lần.

mysql> insert into DuplicateDeleteDemo values(1,'John');
Query OK, 1 row affected (0.11 sec)

mysql>  insert into DuplicateDeleteDemo values(1,'John');
Query OK, 1 row affected (0.14 sec)

mysql>  insert into DuplicateDeleteDemo values(2,'Johnson');
Query OK, 1 row affected (0.13 sec)

mysql>  insert into DuplicateDeleteDemo values(1,'John');
Query OK, 1 row affected (0.14 sec)

Để hiển thị tất cả các bản ghi, hãy sử dụng câu lệnh SELECT.

mysql> select *from DuplicateDeleteDemo;

Sau đây là kết quả với các bản ghi trùng lặp.

+------+---------+
| id   | name    |
+------+---------+
|    1 | John    |
|    1 | John    |
|    2 | Johnson |
|    1 | John    |
+------+---------+
4 rows in set (0.00 sec)

Trong kết quả đầu ra ở trên, chúng ta có 4 bản ghi trong bảng, trong đó 3 bản ghi là trùng lặp.

Để xóa các bản ghi trùng lặp, hãy chọn XÓA.

mysql> delete from DuplicateDeleteDemo where id=1;
Query OK, 3 rows affected (0.19 sec)

Để kiểm tra xem các bản ghi đã bị xóa chưa, hãy để chúng tôi hiển thị lại tất cả các bản ghi.

mysql> select *from DuplicateDeleteDemo;

Kết quả sau hiển thị rằng tất cả các bản ghi trùng lặp đã bị xóa.

+------+---------+
| id   | name    |
+------+---------+
|    2 | Johnson |
+------+---------+
1 row in set (0.00 sec)