GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo encontrar valores duplicados en MySQL

Introducción

MySQL es una aplicación de base de datos que almacena datos en filas y columnas de diferentes tablas para evitar la duplicación. Pueden ocurrir valores duplicados, lo que puede afectar el rendimiento de MySQL.

Esta guía le mostrará cómo encontrar valores duplicados en una base de datos MySQL .

Requisitos previos

  • Una instalación existente de MySQL
  • Credenciales de cuenta de usuario raíz para MySQL
  • Una línea de comando/ventana de terminal

Configuración de una tabla de muestra (opcional)

Este paso lo ayudará a crear una tabla de muestra para trabajar. Si ya tiene una base de datos para trabajar, pase a la siguiente sección.

Abra una ventana de terminal y cambie al shell de MySQL:

mysql –u root –p

Lista de bases de datos existentes:

SHOW databases;

Cree una nueva base de datos que aún no existe:

CREATE database sampledb;

Seleccione la tabla que acaba de crear:

USE sampledb;

Cree una nueva tabla con los siguientes campos:

CREATE TABLE dbtable (
  id INT PRIMARY KEY AUTO_INCREMENT,
  date_x VARCHAR(10) NOT NULL,
  system_x VARCHAR(50) NOT NULL,
  test VARCHAR(50) NOT NULL
);

Insertar filas en la tabla:

INSERT INTO dbtable (date_x,system_x,test)
VALUES ('01/03/2020','system1','hard_drive'),
  ('01/04/2020','system2','memory'),
  ('01/10/2020','system2','processor'),
  ('01/14/2020','system3','hard drive'),
  ('01/10/2020','system2','processor'),
  ('01/20/2020','system4','hard drive'),
  ('01/24/2020','system5','memory'),
  ('01/29/2020','system6','hard drive'),
  ('02/02/2020','system7','motherboard'),
  ('02/04/2020','system8','graphics card'),
  ('02/02/2020','system7','motherboard'),
  ('02/08/2020','system9','hard drive');

Ejecute la siguiente consulta SQL:

SELECT * FROM dbtable
ORDER BY date_x;

Encontrar duplicados en MySQL

Encuentre valores duplicados en una sola columna

Utilice el GROUP BY función para identificar todas las entradas idénticas en una columna. Continúe con un COUNT() HAVING función para enumerar todos los grupos con más de una entrada.

SELECT
  test,
  COUNT(test)
FROM 
  dbtable
GROUP BY test
HAVING COUNT(test) > 1;

Encuentre valores duplicados en varias columnas

Es posible que desee enumerar los duplicados exactos, con la misma información en las tres columnas.

SELECT
  date_x, COUNT(date_x),
  system_x, COUNT(system_x),
  test, COUNT(test)
FROM
  dbtable
GROUP BY
  date_x,
  system_x,
  test
HAVING COUNT(date_x)>1
  AND COUNT(system_x)>1
  AND COUNT(test)>1;

Esta consulta funciona seleccionando y probando el >1 condición en las tres columnas. El resultado es que solo se devuelven filas con valores duplicados en la salida.

Comprobar duplicados en varias tablas con INNER JOIN

Use la función INNER JOIN para encontrar duplicados que existen en varias tablas.

Ejemplo de sintaxis para INNER JOIN la función se ve así:

SELECT column_name
  FROM table1
  INNER JOIN table2
  ON table1.column_name = table2.column name;

Para probar este ejemplo, necesita una segunda tabla que contenga información duplicada del sampledb tabla que creamos arriba.

SELECT dbtable.date_x
  FROM dbtable
  INNER JOIN new_table
  ON dbtable.date_x = new_table.date_x;

Esto mostrará cualquier fecha duplicada que exista entre los datos existentes y la nueva_tabla .


Ubuntu
  1. Cómo crear una tabla en MySQL

  2. Cómo encontrar archivos de configuración de MySQL, PHP y Apache

  3. Cómo encontrar y eliminar fotos duplicadas en Linux

  4. Cómo encontrar archivos duplicados en Linux

  5. ¿Cómo encuentro mi dirección IP en Ubuntu?

Cómo encontrar y eliminar archivos duplicados en Ubuntu usando Fdupes

Cómo instalar el servidor MySQL en Ubuntu

Cómo encontrar archivos duplicados en Linux y eliminarlos

Cómo encontrar la versión de Ubuntu

Cómo instalar MySQL en Ubuntu 22.04

¿Cómo encuentro la ubicación MySQL my.cnf?