Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak znaleźć zduplikowane rekordy w MySQL

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ś!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Left Outer Join nie zwraca wszystkich wierszy z mojej lewej tabeli?

  2. Implementacja odległości Levenshteina dla wyszukiwania mysql/fuzzy?

  3. Połączyć się z kontenerem Docker MySQL z hosta lokalnego?

  4. Jak tworzyć i wdrażać Azure Database for MySQL Server przy użyciu Azure Portal i Workbench

  5. Wartości wiążące PDO dla instrukcji MySQL IN