Veel ontwikkelaars voeren nog steeds een query uit om te controleren of een veld in een tabel aanwezig is en voeren vervolgens een insert- of update-query uit volgens het resultaat van de eerste query. Probeer de ON DUPLICATE KEY-syntaxis te gebruiken, dit is een stuk sneller en beter dan 2 queries uitvoeren. Meer info vind je hier
als u dezelfde waarde voor c wilt behouden, kunt u een update uitvoeren met dezelfde waarde
het verschil tussen 'vervangen' en 'op dubbele sleutel':
als uw tabel geen primaire of unieke sleutel heeft, heeft vervangen geen enkele zin.
U kunt ook de VALUES
. gebruiken functie om te voorkomen dat de werkelijke waarden tweemaal moeten worden opgegeven. bijv. in plaats van
INSERT INTO table (a,b,c) VALUES (4,5,6) ON DUPLICATE KEY UPDATE c=6;
je kunt gebruiken
INSERT INTO table (a,b,c) VALUES (4,5,6) ON DUPLICATE KEY UPDATE c=VALUES(c);
Waar VALUES(c)
zal evalueren tot de eerder gespecificeerde waarde (6).