einfache MySQL Anfrage dauert ewig

Microhome

Erfahrenes Mitglied
Hallo zusammen,

ich habe eine Frage zu folgendem Query:
Code:
$res = mysql_query("SELECT serial FROM inventar GROUP BY serial HAVING COUNT(*) > 1");
while($row = mysql_fetch_object($res)){
	$serial = $row->serial;
	
	echo "$serial<br>";
}


Dieser Code wird innerhalb von ca. einer Sekunden ausgeführt und ich bekomme alle serials angezeigt, die mindestens doppelt in der Datenbank stehen.
Sobald ich dem Code aber eine weitere MySQL Abfrage hinzufüge, dauert diese ewig, bzw. wird gar nicht ausgeführt:

Code:
$res = mysql_query("SELECT serial FROM inventar GROUP BY serial HAVING COUNT(*) > 1");
while($row = mysql_fetch_object($res)){
	$serial = $row->serial;
	
	echo "$serial<br>";

	mysql_query("DELETE FROM inventar WHERE serial = \"$serial\"");
}


Habt ihr eine Idee woran das liegt?

Besten Dank und Grüße aus Berlin.
 
Zuletzt bearbeitet:
Sammle erst alle zu löschenden Einträge und setze dann einen Query ab - und nicht tausende einzelne. ;)
Das könnte dann z. B. so aussehen:

PHP:
$serials = array();
$res = mysql_query("SELECT serial FROM inventar GROUP BY serial HAVING COUNT(*) > 1");
while($row = mysql_fetch_object($res)){
	$serials[] = $row->serial;
}
mysql_query('DELETE FROM inventar WHERE serial IN ( "' . implode( ", ", $serials ) .'")');
 

Neue Beiträge

Zurück