Hvis du ønsker at gøre dette i en enkelt sætning (lyder som det, du ønsker), vil jeg anbefale at bruge INSERT ... ON DUPLICATE KEY UPDATE
syntaks, som følger:
INSERT INTO table (id, someothervalue) VALUES (1, 'hi mom')
ON DUPLICATE KEY UPDATE someothervalue = 'hi mom';
Den indledende INSERT
sætning udføres, hvis der ikke er nogen eksisterende post med den angivne nøgleværdi (enten primærnøgle eller unik). Hvis der allerede findes en post, følgende UPDATE
sætning (someothervalue = 3
) udføres.
Dette understøttes i alle versioner af MySQL. For mere information, se MySQL Reference Manual-siden for INSERT ... ON DUPLICATE KEY UPDATE