sql >> Base de Datos >  >> RDS >> Mysql

Cómo encontrar registros duplicados en MySQL

A veces, es posible que necesite encontrar registros duplicados en MySQL. Aquí se explica cómo obtener registros duplicados en una tabla. Puede usarlo para obtener filas con valores duplicados en MySQL

Cómo encontrar valores duplicados en MySQL

Estos son los pasos para obtener registros duplicados en MySQL. Supongamos que tiene la siguiente tabla de MySQL con registros duplicados.

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

Lectura adicional:MySQL Agregar restricción única

Encuentre valores de fila duplicados en una columna

Aquí está la consulta SQL para encontrar valores duplicados para una columna

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

En la consulta anterior, hacemos un GRUPO POR para la columna para la que queremos verificar los duplicados. También usamos una cláusula COUNT() y HAVING para obtener el recuento de filas para cada grupo.

Lectura adicional:Columna de cambio de nombre de MySQL

Apliquemos la consulta anterior para nuestros dup_orders table, para obtener valores duplicados para id columna

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

Buscar valores de fila duplicados en varias columnas

Aquí está la consulta SQL para encontrar valores duplicados para varias columnas

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

En la consulta anterior, hacemos un GROUP BY de todas las columnas (col1, col2 ) para los que queremos encontrar duplicados. También usamos una cláusula COUNT() y HAVING para obtener el recuento de filas para cada grupo.

Lectura adicional:Cómo duplicar una tabla en MySQL

Apliquemos la consulta anterior para nuestros dup_orders table, para obtener valores duplicados para id y cantidad columna

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

Con suerte, ahora puede obtener fácilmente registros duplicados en MySQL.

Ubiq facilita la visualización de datos en minutos y la supervisión en paneles en tiempo real. ¡Pruébalo hoy!