Prova a usare INSERT ... ON DUPLICATE KEY UPDATE
Se si specifica ON DUPLICATE KEY UPDATE e viene inserita una riga che causerebbe un valore duplicato in un indice UNIQUE o PRIMARY KEY, MySQL esegue un UPDATE della vecchia riga.
Ad esempio, se la colonna a è dichiarata UNIQUE e contiene il valore 1, le due istruzioni seguenti hanno un effetto simile:
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;
(Gli effetti non sono identici per una tabella in cui a è una colonna con incremento automatico. Con una colonna con incremento automatico, un INSERT
istruzione aumenta il valore di incremento automatico ma UPDATE
no.)
La clausola ON DUPLICATE KEY UPDATE può contenere più assegnazioni di colonne, separate da virgole.
Con ON DUPLICATE KEY UPDATE, il valore delle righe interessate per riga è 1 se la riga viene inserita come una nuova riga e 2 se viene aggiornata una riga esistente.
Spero che questo aiuterà.