Een andere optie:
INSERT INTO tbl (count, otherID)
VALUES (2, 'a')
ON DUPLICATE KEY UPDATE
count = GREATEST(VALUES(count), count) ;
Waarschuwing: Dit mislukt als de doorgegeven waarde voor count
is NULL
(in plaats van 2
). Het zal de kolom bijwerken met NULL
. Het is dus beter om de IF()
. te gebruiken of een CASE
clausule.
Tenzij je de voorkeur geeft aan (daar gaat de elegantie ...):
ON DUPLICATE KEY UPDATE
count = GREATEST(COALESCE(VALUES(count), count), count) ;