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!