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
Mary-Kate OlsenOriginal
2025-01-24 02:15:09393Durchsuche

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>

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!

Stellungnahme:
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