GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come trovare valori duplicati in MySQL

Introduzione

MySQL è un'applicazione di database che memorizza i dati in righe e colonne di tabelle diverse per evitare duplicazioni. Possono verificarsi valori duplicati, che possono influire sulle prestazioni di MySQL.

Questa guida ti mostrerà come trovare valori duplicati in un database MySQL .

Prerequisiti

  • Un'installazione esistente di MySQL
  • Credenziali dell'account utente root per MySQL
  • Una riga di comando/finestra del terminale

Impostazione di una tabella campioni (opzionale)

Questo passaggio ti aiuterà a creare una tabella di esempio con cui lavorare. Se hai già un database su cui lavorare, vai alla sezione successiva.

Apri una finestra di terminale e passa alla shell MySQL:

mysql –u root –p

Elenca i database esistenti:

SHOW databases;

Crea un nuovo database che non esiste già:

CREATE database sampledb;

Seleziona la tabella che hai appena creato:

USE sampledb;

Crea una nuova tabella con i seguenti campi:

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

Inserisci righe nella tabella:

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

Esegui la seguente query SQL:

SELECT * FROM dbtable
ORDER BY date_x;

Trovare duplicati in MySQL

Trova valori duplicati in una singola colonna

Usa il GROUP BY funzione per identificare tutte le voci identiche in una colonna. Continua con un COUNT() HAVING funzione per elencare tutti i gruppi con più di una voce.

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

Trova valori duplicati in più colonne

Potresti voler elencare i duplicati esatti, con le stesse informazioni in tutte e tre le colonne.

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;

Questa query funziona selezionando e testando il >1 condizione su tutte e tre le colonne. Il risultato è che nell'output vengono restituite solo le righe con valori duplicati.

Controlla duplicati in più tabelle con INNER JOIN

Usa la funzione INNER JOIN per trovare duplicati che esistono in più tabelle.

Esempio di sintassi per un INNER JOIN la funzione è simile a questa:

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

Per testare questo esempio, hai bisogno di una seconda tabella che contenga alcune informazioni duplicate da sampledb tabella che abbiamo creato sopra.

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

Verranno visualizzate tutte le date duplicate esistenti tra i dati esistenti e la nuova_tabella .


Ubuntu
  1. Come creare una tabella in MySQL

  2. Come trovare file di configurazione MySQL, PHP e Apache

  3. Come trovare e rimuovere le foto duplicate in Linux

  4. Come trovare file duplicati in Linux

  5. Come faccio a trovare il mio indirizzo IP in Ubuntu

Come trovare ed eliminare file duplicati in Ubuntu usando Fdupes

Come installare il server MySQL in Ubuntu

Come trovare file duplicati in Linux e rimuoverli

Come trovare la versione di Ubuntu

Come installare MySQL su Ubuntu 22.04

Come trovo la posizione MySQL my.cnf