Vous allez vouloir utiliser la syntaxe INSERT...ON DUPLICATE KEY UPDATE.
http://dev.mysql.com/doc /refman/5.1/en/insert-on-duplicate.html
Voici un exemple qui essaiera de créer un enregistrement avec un identifiant, une date de naissance et un nom. Si un enregistrement avec le champ id existe, il effectuera la mise à jour spécifiée. La table a beaucoup d'autres champs comme l'adresse e-mail, le code postal, etc. Je veux laisser ces champs seuls si je mets à jour. (REPLACE INTO perdrait toutes ces données si je ne les incluais pas dans l'instruction REPLACE INTO.)
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';