Autre option :
INSERT INTO tbl (count, otherID)
VALUES (2, 'a')
ON DUPLICATE KEY UPDATE
count = GREATEST(VALUES(count), count) ;
Avertissement : Cela échouera si la valeur transmise pour count
est NULL
(au lieu de 2
). Il mettra à jour la colonne avec NULL
. Donc, il vaut mieux utiliser le IF()
ou un CASE
clause.
A moins que vous ne préfériez le (il y va de l'élégance...) :
ON DUPLICATE KEY UPDATE
count = GREATEST(COALESCE(VALUES(count), count), count) ;