Jest to bardzo częsty problem z obsługą duplikatów danych w tabeli mysql. Jeśli pracujesz na dużej ilości danych, możesz napotkać ten problem, więc w tym poście pokażę Ci zapytanie MYsql, za pomocą którego możesz znaleźć zduplikowane dane i usuń go. Jest to również najczęściej zadawane pytanie podczas rozmowy kwalifikacyjnej.
Załóżmy, że w naszej bazie danych jest 25 tys. tabeli firm i chcesz znaleźć zduplikowane firmy i chcesz całkowicie usunąć z tabeli firm, a następnie użyj poniższych zapytań mysql.
TB_COMPANIES
ID | COMPANY_NAME | ADRES | CONTACT_PERSON_NAME | IDENTYFIKATOR EMAIL | TELEFON |
---|---|---|---|---|---|
1 | HCL LTD. | NOIDA | XXXXXXX | przykł[email protected] | xxxxxxxx |
2 | WIPRO | DELHI | XXXXXXX | przykł[email protected] | xxxxxxxx |
3 | HCL LTD. | NOIDA | XXXXXXX | przykł[email protected] | xxxxxxxx |
.. | .. | .. | .. | x... | … |
.. | .. | .. | .. | x... | … |
.. | .. | .. | .. | x... | … |
W powyższej tabeli znajdują się zduplikowane rekordy firmy HCL, które musimy znaleźć i usunąć.
Zapytanie MYSql w celu znalezienia zduplikowanych danych.
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 ) |
Zapytanie MYSql w celu usunięcia zduplikowanych danych.
DELETE C1 FROM TB_COMPANIES C1,TB_COMPANIES C2 WHERE C1.ID < C2.ID AND C1.COMPANY_NAME = C2.COMPANY_NAME |
Powyżej widziałeś, używając podzapytania MYsql i funkcji samodzielnego łączenia, możesz łatwo napisać zapytanie, aby znaleźć i usunąć zduplikowane dane.