Danke schon mal vorab,
Mal eine Skizze:
DELETE
FROM
DT_1
WHERE
DT_1_ID NOT IN
(
SELECT DISTINCT
DT_1_ID --,
-- <Kriterienliste>
FROM
DT_1
)
> >
> > Haben jetzt wenig Zeit, scheint mir ziemlich einfach zu sein, aber vielleicht irren wir, bitte prüfen...
>
> Habe ich schon mal getestet. Das Problem ist das karthesische Produkt der beiden Abfragen, dieses wird zu groß für den Speicher (von der Ausführungszeit ganz zu schweigen)
Bitte mal präzisieren, wir sehen hier kein Produkt:
"
<?php
echo "lese Daten: "; // Kontrollausgabe, ob der Skript überhaupt gestartet ist
$daten = mysql\_db\_query("datenbank","select id, name from tabelle group by name order by name") or die(mysql\_error());
echo "Totalcount einzelne Firmennamen: ".mysql\_num\_rows($daten)."\n\n"; // Kontrollausgabe, um die Datenmenge zu sehen
while ($wert = mysql\_fetch\_array($daten) )
{
$i++;
mysql\_db\_query('datenbank','delete from tabelle where name = "'. addslashes($wert[name]).'" and id != "'.$wert[id].'"') or die (mysql\_error());
echo "Name: ". $wert["name"] .", Datensatz: $i "; // erneute Kontrollausgabe, um zu prüfen, ob der Skript überhaupt noch arbeitet
}
echo "Fertig"; //Letzte Kontrollausgabe
?>
"
Und, bitte mal die Anforderung konkretisieren, zumindest wenn unser vorgeschlagenes Vorgehen unzureichend erscheint.
(Wenn Du überhaupt keine Ahnung hast, auch OK! Aber bitte jetzt kurz darauf hinweisen.)