Khi bạn phát hiện bản ghi trùng lặp trong MySQL, có một số bước bạn có thể thực hiện để xử lý vấn đề:

Xác định các bản ghi trùng lặp:

Sử dụng câu lệnh SQL để tìm các bản ghi trùng lặp. Ví dụ, nếu bạn có một bảng users với cột email và bạn muốn tìm các email trùng lặp, bạn có thể sử dụng:

SELECT email, COUNT(*)
FROM users
GROUP BY email
HAVING COUNT(*) > 1;

Xóa các bản ghi trùng lặp:

Sau khi xác định các bản ghi trùng lặp, bạn có thể xóa chúng. Để xóa các bản ghi trùng lặp mà giữ lại một bản duy nhất, bạn có thể sử dụng một câu lệnh SQL như sau:

DELETE u1
FROM users u1
INNER JOIN users u2 
ON u1.email = u2.email
WHERE u1.id < u2.id;

Ở đây, id là khóa chính của bảng và được giả định rằng nó là tự tăng. Câu lệnh trên sẽ giữ lại bản ghi có id nhỏ hơn và xóa các bản sao có id lớn hơn.

Thiết lập các chỉ mục duy nhất (unique indexes):

Để ngăn ngừa việc tạo các bản ghi trùng lặp trong tương lai, bạn có thể thêm một chỉ mục duy nhất vào cột hoặc nhóm cột mà bạn muốn đảm bảo không có trùng lặp. Ví dụ:

ALTER TABLE users
ADD UNIQUE (email);