Mysql
 sql >> Database >  >> RDS >> Mysql

Come trovare record duplicati in MySQL

A volte potrebbe essere necessario trovare record duplicati in MySQL. Ecco come ottenere record duplicati in una tabella. Puoi usarlo per ottenere righe con valori duplicati in MySQL

Come trovare valori duplicati in MySQL

Ecco i passaggi per ottenere record duplicati in MySQL. Supponiamo che tu abbia la seguente tabella MySQL con record duplicati.

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 |
+------+--------+

Bonus Lettura:MySQL aggiunge un vincolo unico

Trova valori di riga duplicati in una colonna

Ecco la query SQL per trovare valori duplicati per una colonna

SELECT 
    col, 
    COUNT(col)
FROM
    table_name
GROUP BY col
HAVING COUNT(col) > 1;

Nella query precedente, eseguiamo un GROUP BY per la colonna per la quale vogliamo controllare i duplicati. Usiamo anche una clausola COUNT() e HAVING per ottenere il conteggio delle righe per ogni gruppo.

Bonus Lettura:Colonna Rinomina MySQL

Applichiamo la query precedente per i nostri dup_orders tabella, per ottenere valori duplicati per id colonna

mysql> select id, amount
       from dup_orders
       group by id
       having count(id)>1;
+------+--------+
| id   | amount |
+------+--------+
|    1 |    100 |
|    2 |    350 |
+------+--------+

Trova valori di riga duplicati in più colonne

Ecco la query SQL per trovare valori duplicati per più colonne

SELECT 
    col1, col2,..., COUNT(*)
FROM
    table_name
GROUP BY 
    col1, 
    col2,
    ...
HAVING 
       (COUNT(col1) > 1) AND 
       (COUNT(col2) > 1) AND
       ...

Nella query precedente, eseguiamo un GROUP BY di tutte le colonne (col1, col2 ) per i quali vogliamo trovare duplicati. Usiamo anche una clausola COUNT() e HAVING per ottenere il conteggio delle righe per ogni gruppo.

Bonus Leggi:Come duplicare la tabella in MySQL

Applichiamo la query precedente per i nostri dup_orders tabella, per ottenere valori duplicati per id e importo colonna

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 |
+------+--------+----------+

Si spera che ora sia possibile ottenere facilmente record duplicati in MySQL.

Ubiq semplifica la visualizzazione dei dati in pochi minuti e il monitoraggio in dashboard in tempo reale. Provalo oggi!