Mange udviklere udfører stadig en forespørgsel for at kontrollere, om et felt er til stede i en tabel, og udfører derefter en indsættelses- eller opdateringsforespørgsel i henhold til resultatet af den første forespørgsel. Prøv at bruge ON DUPLICATE KEY-syntaksen, det er meget hurtigere og bedre derefter udføre 2 forespørgsler. Du kan finde flere oplysninger her
hvis du vil beholde den samme værdi for c, kan du lave en opdatering med den samme værdi
forskellen mellem 'erstat' og 'på duplicate key':
hvis din tabel ikke har en primær nøgle eller unik nøgle, giver erstatningen ingen mening.
Du kan også bruge VALUES
funktion for at undgå at skulle angive de faktiske værdier to gange. For eksempel. i stedet for
INSERT INTO table (a,b,c) VALUES (4,5,6) ON DUPLICATE KEY UPDATE c=6;
du kan bruge
INSERT INTO table (a,b,c) VALUES (4,5,6) ON DUPLICATE KEY UPDATE c=VALUES(c);
Hvor VALUES(c)
vil evaluere til den værdi, der er angivet tidligere (6).