Tente usar
INSERT ... ON DUPLICATE KEY UPDATE
Se você especificar ON DUPLICATE KEY UPDATE e for inserida uma linha que causaria um valor duplicado em um índice UNIQUE ou PRIMARY KEY, o MySQL executará um UPDATE da linha antiga.
Por exemplo, se a coluna a for declarada como UNIQUE e contiver o valor 1, as duas instruções a seguir terão efeito semelhante:
INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;
UPDATE table SET c=c+1 WHERE a=1;
(Os efeitos não são idênticos para uma tabela onde a é uma coluna de incremento automático. Com uma coluna de incremento automático, um
INSERT
instrução aumenta o valor de incremento automático, mas UPDATE
não.) A cláusula ON DUPLICATE KEY UPDATE pode conter várias atribuições de coluna, separadas por vírgulas.
Com ON DUPLICATE KEY UPDATE, o valor das linhas afetadas por linha é 1 se a linha for inserida como uma nova linha e 2 se uma linha existente for atualizada.
Espero que isso ajude.