Heim >Datenbank >MySQL-Tutorial >Wie entferne ich doppelte Zeilen in MySQL nur mithilfe von SQL-Abfragen?
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!