GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment trouver des valeurs en double dans MySQL

Présentation

MySQL est une application de base de données qui stocke les données dans des lignes et des colonnes de différentes tables pour éviter les doublons. Des valeurs en double peuvent se produire, ce qui peut avoir un impact sur les performances de MySQL.

Ce guide vous montrera comment trouver des valeurs en double dans une base de données MySQL .

Prérequis

  • Une installation existante de MySQL
  • Identifiants du compte utilisateur racine pour MySQL
  • Une ligne de commande/fenêtre de terminal

Configuration d'un exemple de tableau (facultatif)

Cette étape vous aidera à créer un exemple de tableau avec lequel travailler. Si vous avez déjà une base de données sur laquelle travailler, passez à la section suivante.

Ouvrez une fenêtre de terminal et passez au shell MySQL :

mysql –u root –p

Lister les bases de données existantes :

SHOW databases;

Créez une nouvelle base de données qui n'existe pas déjà :

CREATE database sampledb;

Sélectionnez le tableau que vous venez de créer :

USE sampledb;

Créez une nouvelle table avec les champs suivants :

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
);

Insérer des lignes dans le tableau :

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');

Exécutez la requête SQL suivante :

SELECT * FROM dbtable
ORDER BY date_x;

Rechercher des doublons dans MySQL

Rechercher des valeurs en double dans une seule colonne

Utilisez le GROUP BY fonction pour identifier toutes les entrées identiques dans une colonne. Faites un suivi avec un COUNT() HAVING fonction pour lister tous les groupes avec plus d'une entrée.

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

Rechercher des valeurs en double dans plusieurs colonnes

Vous pouvez lister les doublons exacts, avec les mêmes informations dans les trois colonnes.

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;

Cette requête fonctionne en sélectionnant et en testant le >1 condition sur les trois colonnes. Le résultat est que seules les lignes avec des valeurs en double sont renvoyées dans la sortie.

Vérifier les doublons dans plusieurs tables avec INNER JOIN

Utilisez la fonction INNER JOIN pour rechercher les doublons qui existent dans plusieurs tables.

Exemple de syntaxe pour un INNER JOIN la fonction ressemble à ceci :

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

Pour tester cet exemple, vous avez besoin d'une deuxième table contenant des informations dupliquées à partir de sampledb tableau que nous avons créé ci-dessus.

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

Cela affichera toutes les dates en double qui existent entre les données existantes et la nouvelle_table .


Ubuntu
  1. Comment créer une table dans MySQL

  2. Comment trouver les fichiers de configuration MySQL, PHP et Apache

  3. Comment rechercher et supprimer des photos en double sous Linux

  4. Comment trouver des fichiers en double sous Linux

  5. Comment trouver mon adresse IP dans Ubuntu

Comment rechercher et supprimer des fichiers en double dans Ubuntu à l'aide de Fdupes

Comment installer le serveur MySQL dans Ubuntu

Comment trouver des fichiers en double sous Linux et les supprimer

Comment trouver la version d'Ubuntu

Comment installer MySQL sur Ubuntu 22.04

Comment puis-je trouver l'emplacement MySQL my.cnf