Sie sollten die Syntax INSERT...ON DUPLICATE KEY UPDATE verwenden.
http://dev.mysql.com/doc /refman/5.1/en/insert-on-duplicate.html
Hier ist ein Beispiel, das versucht, einen Datensatz mit einer ID, einem Geburtstag und einem Namen zu erstellen. Wenn ein Datensatz mit dem ID-Feld vorhanden ist, wird die angegebene Aktualisierung durchgeführt. Die Tabelle enthält viele andere Felder wie E-Mail-Adresse, Postleitzahl usw. Ich möchte diese Felder in Ruhe lassen, wenn ich aktualisiere. (REPLACE INTO würde alle diese Daten verlieren, wenn ich sie nicht in die REPLACE INTO-Anweisung aufnehmen würde.)
INSERT INTO user (userid,birthday,first_name,last_name)
VALUES (1234,'1980-03-07','Joe','Smith')
ON DUPLICATE KEY UPDATE
birthday = '1980-03-07',
first_name = 'Joe',
last_name = 'Smith';