Czasami może być konieczne znalezienie zduplikowanych rekordów w MySQL. Oto jak uzyskać zduplikowane rekordy w tabeli. Możesz go użyć, aby uzyskać wiersze ze zduplikowanymi wartościami w MySQL
Jak znaleźć zduplikowane wartości w MySQL
Oto kroki, aby uzyskać zduplikowane rekordy w MySQL. Załóżmy, że masz następującą tabelę MySQL ze zduplikowanymi rekordami.
mysql> create table dup_orders(id int, amount int); mysql> insert into dup_orders(id,amount) values(1, 100),(1,250),(2,350),(2,350); mysql> select * from dup_orders; +------+--------+ | id | amount | +------+--------+ | 1 | 100 | | 1 | 250 | | 2 | 350 | | 2 | 350 | +------+--------+
Przeczytaj dodatkowe:MySQL Dodaj unikalne ograniczenie
Znajdź zduplikowane wartości wierszy w jednej kolumnie
Oto zapytanie SQL, aby znaleźć zduplikowane wartości dla jednej kolumny
SELECT col, COUNT(col) FROM table_name GROUP BY col HAVING COUNT(col) > 1;
W powyższym zapytaniu robimy GROUP BY dla kolumny, dla której chcemy sprawdzić duplikaty. Używamy również klauzuli COUNT() i HAVING, aby uzyskać liczbę wierszy dla każdej grupy.
Przeczytaj bonus:kolumna zmiany nazwy MySQL
Zastosujmy powyższe zapytanie do naszych dup_orders tabela, aby uzyskać zduplikowane wartości dla id kolumna
mysql> select id, amount from dup_orders group by id having count(id)>1; +------+--------+ | id | amount | +------+--------+ | 1 | 100 | | 2 | 350 | +------+--------+
Znajdź zduplikowane wartości wierszy w wielu kolumnach
Oto zapytanie SQL, aby znaleźć zduplikowane wartości dla wielu kolumn
SELECT col1, col2,..., COUNT(*) FROM table_name GROUP BY col1, col2, ... HAVING (COUNT(col1) > 1) AND (COUNT(col2) > 1) AND ...
W powyższym zapytaniu wykonujemy GROUP BY wszystkich kolumn (col1, col2 ), dla których chcemy znaleźć duplikaty. Używamy również klauzuli COUNT() i HAVING, aby uzyskać liczbę wierszy dla każdej grupy.
Przeczytaj bonus:Jak zduplikować tabelę w MySQL
Zastosujmy powyższe zapytanie do naszych dup_orders tabela, aby uzyskać zduplikowane wartości dla id i kwota kolumna
mysql> select id, amount,count(*) from dup_orders group by id,amount having count(id)>1 and count(amount)>1; +------+--------+----------+ | id | amount | count(*) | +------+--------+----------+ | 2 | 350 | 2 | +------+--------+----------+
Mamy nadzieję, że teraz możesz łatwo uzyskać zduplikowane rekordy w MySQL.
Ubiq ułatwia wizualizację danych w ciągu kilku minut i monitorowanie w pulpitach nawigacyjnych w czasie rzeczywistym. Wypróbuj już dziś!