MySQL предоставляет очень милые решения:
REPLACE INTO `table` VALUES (5, 'John', 'Doe', SHA1('password'));
Очень проста в использовании, так как вы объявили уникальный первичный ключ (здесь со значением 5).