Heim > Datenbank > MySQL-Tutorial > Wie entferne ich doppelte Zeilen in MySQL nur mithilfe von SQL-Abfragen?

Wie entferne ich doppelte Zeilen in MySQL nur mithilfe von SQL-Abfragen?

Mary-Kate Olsen
Freigeben: 2025-01-24 02:15:09
Original
432 Leute haben es durchsucht

How to Remove Duplicate Rows in MySQL Using Only SQL Queries?

Doppelte Zeilen in MySQL ohne externe Skripte entfernen

In einigen Fällen müssen Sie möglicherweise doppelte Zeilen in einer MySQL-Tabelle basierend auf einer bestimmten Spaltenkombination entfernen. Im Folgenden wird untersucht, wie Sie dies erreichen können, indem Sie ausschließlich SQL-Abfragen verwenden und serverseitige Skripts vermeiden.

Hintergrund

Wie in der ersten Frage angegeben, enthält die Tabelle mehrere Spalten, darunter „id“, „url“, „title“, „company“ und „site_id“. Das Ziel besteht darin, die Zeilen zu entfernen, in denen „title“, „company“ und „site_id“ denselben Wert haben.

Lösung

Eine effektive Möglichkeit, doppelte Zeilen zu entfernen, besteht darin, einen UNIQUE-Index für diese drei Spalten zu verwenden. Die Syntax zum Erstellen eines solchen Index lautet wie folgt:

<code class="language-sql">ALTER IGNORE TABLE jobs ADD UNIQUE INDEX idx_name (site_id, title, company);</code>
Nach dem Login kopieren

Bitte beachten Sie, dass in der Erklärung das Schlüsselwort „IGNORE“ verwendet wird. Dadurch wird MySQL angewiesen, doppelte Zeilen beim Erstellen des Index zu ignorieren. Dies bedeutet, dass diese doppelten Zeilen aus der Tabelle entfernt werden.

Zusätzliche Vorteile

Zusätzlich zum Entfernen vorhandener doppelter Zeilen verhindert das Hinzufügen eines UNIQUE-Index, dass künftig doppelte Zeilen eingefügt werden. Jeder Versuch, eine Zeile einzufügen, in der bereits eine Kombination aus „site_id“, „title“ und „company“ vorhanden ist, führt zu einem Fehler.

Hinweis:

Bitte beachten Sie, dass diese Funktion in MySQL 5.7 und höher entfernt wurde. Daher funktioniert diese Lösung mit diesen MySQL-Versionen nicht mehr.

Das obige ist der detaillierte Inhalt vonWie entferne ich doppelte Zeilen in MySQL nur mithilfe von SQL-Abfragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage