Đây là vấn đề rất thường xảy ra khi xử lý dữ liệu trùng lặp trong bảng mysql, Nếu bạn đang làm việc trên một lượng lớn dữ liệu, bạn có thể gặp phải vấn đề này, Vì vậy, trong bài đăng này tôi sẽ chỉ cho bạn truy vấn MYsql mà bạn có thể tìm thấy dữ liệu trùng lặp và loại bỏ nó. Đây cũng là câu hỏi có thể hỏi nhiều nhất trong thời gian phỏng vấn.
Giả sử chúng ta có 25 nghìn công ty trong cơ sở dữ liệu của mình và có một số công ty trùng lặp tồn tại trong cơ sở dữ liệu của bạn. bảng công ty và bạn muốn tìm các công ty trùng lặp và muốn xóa hoàn toàn khỏi bảng công ty của mình thì hãy sử dụng các truy vấn mysql bên dưới.
TB_COMPANIES
ID | COMPANY_NAME | ĐỊA CHỈ | CONTACT_PERSON_NAME | EMAILID | PHONENO |
---|---|---|---|---|---|
1 | HCL LTD. | NOIDA | XXXXXXX | [email protected] | xxxxxxxx |
2 | WIPRO | DELHI | XXXXXXX | [email protected] | xxxxxxxx |
3 | HCL LTD. | NOIDA | XXXXXXX | [email protected] | xxxxxxxx |
.. | .. | .. | .. | x .. | … |
.. | .. | .. | .. | x .. | … |
.. | .. | .. | .. | x .. | … |
Trong bảng trên có các bản ghi trùng lặp của HCL công ty, chúng tôi phải tìm và loại bỏ nó.
Truy vấn MYSql để tìm dữ liệu trùng lặp.
SELECT COMPANY_NAME FROM TB_COMPANIES WHERE COMPANY_NAME IN ( SELECT COMPANY_NAME FROM TB_COMPANIES GROUP BY COMPANY_NAME HAVING COUNT( COMPANY_NAME ) >1 ) |
Truy vấn MYSql để xóa dữ liệu trùng lặp.
DELETE C1 FROM TB_COMPANIES C1,TB_COMPANIES C2 WHERE C1.ID < C2.ID AND C1.COMPANY_NAME = C2.COMPANY_NAME |
Ở trên bạn đã thấy, Sử dụng truy vấn phụ MYsql và tính năng tự tham gia, bạn có thể dễ dàng viết truy vấn để tìm và xóa dữ liệu trùng lặp.