Você vai querer usar a sintaxe INSERT...ON DUPLICATE KEY UPDATE.
http://dev.mysql.com/doc /refman/5.1/en/insert-on-duplicate.html
Aqui está um exemplo que tentará criar um registro com um id, aniversário e nome. Se existir um registro com o campo id, ele fará a atualização especificada. A tabela tem muitos outros campos como endereço de e-mail, código postal, etc. Eu quero deixar esses campos em paz se eu atualizar. (REPLACE INTO perderia qualquer um desses dados se eu não os incluísse na instrução 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';