Seite 1 von 1

SQL Abfrage Suchen und ersetzen

Verfasst: 13.12.2006, 21:35
von harakiri
Hallo Leute,
habe die suche bemüht aber leider....

Ich habe eine datenbank SQL mit 90000 Werten.

Dort sind jetzt aber einige Duplikate vorhanden, welche ich löschen möchte.

Es sollten alle Datensätze gelöscht werden, welche den gleichen Titel haben, alles andere kann unterschiedlich sein.

delete * from Tabelle where ....?

Kann mir jemand helfen, stehe auf dem Schlauch!!

Verfasst:
von

Verfasst: 13.12.2006, 21:58
von Ice Man
Das Problem kenn ich, ich habs so gelöst.

Erst eine Abfrage mit count + group by titel.
in der Schleife dann eine if Abfrage

Ist Anzahl größer 1 dann
delete from Tabelle where titel = aktueller Titel aus schleife und id !=aktueller id

das löscht alle Einträge mit doppeltem Titel.
Dabei bleibt der 1. Doppelte Eintrag immer erhalten.

Verfasst: 13.12.2006, 22:08
von harakiri
danke, aber gib mir mal n beispiel, weiss jetzt wirklich nicht wie!

Verfasst: 13.12.2006, 22:12
von Ice Man
steht doch alles da ?
Das war doch ein ausführliches Beispiel

Verfasst: 13.12.2006, 22:26
von Ice Man

Code: Alles auswählen


$query=mysql_query("SELECT COUNT(titel) as anzahl,titel FROM tabelle group by titel ORDER by titel");

while ($seite=mysql_fetch_array($query)):

if($seite['anzahl']> 1){

$suche=mysql_query("SELECT id FROM tabelle  WHERE titel='".$seite[titel]."' order by id ASC limit 1"); 
$daten=mysql_fetch_array($suche);
$kill_id = $daten['id'];

$query1=mysql_query("Delete From tabelle  WHERE titel ='".$seite[titel]."' and id !='".$kill_id."' ");
} 

endwhile;

So, das ist es, den Code verwende ich so :)
Must es halt anpassen