Hier ist noch ein dreckiges kleines MySQL-Problem. Matthias Fiedler fragt:
Ich möchte in einer Tabelle bestimmte Werte bzw. Datensätze ändern. Das läuft in einer Schleife und ich möchte mitzählen, wie viele Datensätze wirklich geändert wurden.
...
Wenn ich nur Update benutze und der Datensatz in der Tabelle ist identisch mit dem neuen, dann wird kein Update ausgeführt. Somit kann ich hier mit mysql_affected_rows() die Menge zählen. Das hat aber einen Nachteil: Manche Datensätze sind ja noch gar nicht in der Tabelle. Da geht ja dann auch kein Update.
Also müsste ich erst mal per Select prüfen, ob ein Datensatz da ist und dann entscheiden, ob ich den per Update ersetze oder per Insert neu einstelle oder gar nichts mache. Dann ist zwar das zählen wieder simpel, weil man gar keine sql Funktion dazu mehr braucht. Aber ich muß immer erst ein Select ausführen.
Ein Replace oder ein ON DUPLICATE …
[Mehr]