Se vuoi farlo in una singola istruzione (sembra quello che vuoi), ti consiglio di usare il INSERT ... ON DUPLICATE KEY UPDATE
sintassi, come segue:
INSERT INTO table (id, someothervalue) VALUES (1, 'hi mom')
ON DUPLICATE KEY UPDATE someothervalue = 'hi mom';
L'iniziale INSERT
l'istruzione verrà eseguita se non esiste un record esistente con il valore della chiave specificato (chiave primaria o univoca). Se esiste già un record, il seguente UPDATE
istruzione (someothervalue = 3
) viene eseguito.
Questo è supportato in tutte le versioni di MySQL. Per ulteriori informazioni, vedere la pagina MySQL Reference Manual per INSERT ... ON DUPLICATE KEY UPDATE