Tutorials

Einige nützliche Hilfen und Code-Schnipsel, die ich immer wieder benötige und deshalb hier für alle sammle.

Zurück zur Übersicht

Doppelte Spalten löschen in einer Mysql Datenbank mit PHP

#Tutorials#SQL

Mysql Logo

Ich habe mir schon häufiger die Frage gestellt, wie ich an doppelte Spalten herankomme, dessen einziger Unterschied der automatische Primärschlüssel ist. Hier habe ich eine Php Funkion die sich erst alle Doppelten Einträge holt und diese dann aus der Datenbank löscht. Zudem zeigt sie noch an, wie viele Datensätze betroffen waren.


<?php

$res = mysql_query("SELECT doppelte_Spalte, COUNT( * ) AS anzahl FROM eure_tabelle GROUP BY doppelte_Spalte HAVING COUNT( * ) >1");
$returned_rows = mysql_num_rows ($res);
while($row =  mysql_fetch_array($res)) {
	$doppelte_Spalte = $row["doppelte_Spalte"];
	mysql_query("DELETE FROM eure_tabelle WHERE doppelte_Spalte = ".$doppelte_Spalte." LIMIT 1");
}

print''.$returned_rows.' doppelte Einträge gelöscht<br/>';
?>

Das Limit 1 beim Delete ist sehr wichtig, da sonst alle Einträge mit der doppelte Spalte gelöscht werden und wir wollen ja nur einen löschen.


Kommentare

Es gibt noch keine Kommentare. Sei der Erste!

Hinterlasse einen Kommentar

Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Kommentar wird gespeichert
Danke für deinen Kommentar! Sobald er freigegeben wurde erscheint er hier.