Om du vill göra detta i en enda sats (låter som vad du vill), skulle jag rekommendera att du använder INSERT ... ON DUPLICATE KEY UPDATE
syntax enligt följande:
INSERT INTO table (id, someothervalue) VALUES (1, 'hi mom')
ON DUPLICATE KEY UPDATE someothervalue = 'hi mom';
Den initiala INSERT
sats kommer att köras om det inte finns någon befintlig post med det angivna nyckelvärdet (antingen primärnyckel eller unik). Om en post redan finns, följande UPDATE
uttalande (someothervalue = 3
) körs.
Detta stöds i alla versioner av MySQL. För mer information, se sidan MySQL Referensmanual för INSERT ... ON DUPLICATE KEY UPDATE