GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So finden Sie doppelte Werte in MySQL

Einführung

MySQL ist eine Datenbankanwendung, die Daten in Zeilen und Spalten verschiedener Tabellen speichert, um Duplikate zu vermeiden. Es können doppelte Werte auftreten, die die Leistung von MySQL beeinträchtigen können.

Diese Anleitung zeigt Ihnen, wie Sie doppelte Werte in einer MySQL-Datenbank finden .

Voraussetzungen

  • Eine vorhandene Installation von MySQL
  • Root-Benutzerkonto-Anmeldeinformationen für MySQL
  • Ein Befehlszeilen-/Terminalfenster

Einrichten einer Beispieltabelle (optional)

Dieser Schritt hilft Ihnen, eine Beispieltabelle zu erstellen, mit der Sie arbeiten können. Wenn Sie bereits eine Datenbank haben, an der Sie arbeiten können, fahren Sie mit dem nächsten Abschnitt fort.

Öffnen Sie ein Terminalfenster und wechseln Sie zur MySQL-Shell:

mysql –u root –p

Vorhandene Datenbanken auflisten:

SHOW databases;

Erstellen Sie eine neue Datenbank, die noch nicht existiert:

CREATE database sampledb;

Wählen Sie die soeben erstellte Tabelle aus:

USE sampledb;

Erstellen Sie eine neue Tabelle mit den folgenden Feldern:

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

Zeilen in die Tabelle einfügen:

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

Führen Sie die folgende SQL-Abfrage aus:

SELECT * FROM dbtable
ORDER BY date_x;

Duplikate in MySQL finden

Doppelte Werte in einer einzelnen Spalte finden

Verwenden Sie GROUP BY Funktion, um alle identischen Einträge in einer Spalte zu identifizieren. Folgen Sie mit einem COUNT() HAVING Funktion, um alle Gruppen mit mehr als einem Eintrag aufzulisten.

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

Doppelte Werte in mehreren Spalten finden

Möglicherweise möchten Sie exakte Duplikate mit denselben Informationen in allen drei Spalten auflisten.

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;

Diese Abfrage funktioniert durch Auswählen und Testen der >1 Zustand in allen drei Spalten. Das Ergebnis ist, dass nur Zeilen mit doppelten Werten in der Ausgabe zurückgegeben werden.

Mit INNER JOIN nach Duplikaten in mehreren Tabellen suchen

Verwenden Sie die INNER JOIN-Funktion, um Duplikate zu finden, die in mehreren Tabellen vorhanden sind.

Beispielsyntax für einen INNER JOIN Funktion sieht so aus:

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

Um dieses Beispiel zu testen, benötigen Sie eine zweite Tabelle, die einige Informationen enthält, die aus der sampledb dupliziert wurden Tabelle, die wir oben erstellt haben.

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

Dadurch werden alle doppelten Daten angezeigt, die zwischen den vorhandenen Daten und der neuen_Tabelle vorhanden sind .


Ubuntu
  1. So erstellen Sie eine Tabelle in MySQL

  2. So finden Sie MySQL-, PHP- und Apache-Konfigurationsdateien

  3. So finden und entfernen Sie doppelte Fotos in Linux

  4. So finden Sie doppelte Dateien in Linux

  5. Wie finde ich meine IP-Adresse in Ubuntu

So finden und löschen Sie doppelte Dateien in Ubuntu mit Fdupes

So installieren Sie MySQL-Server in Ubuntu

So finden Sie doppelte Dateien in Linux und entfernen sie

So finden Sie die Ubuntu-Version

So installieren Sie MySQL unter Ubuntu 22.04

Wie finde ich den my.cnf-Speicherort von MySQL?