Ett annat alternativ:
INSERT INTO tbl (count, otherID)
VALUES (2, 'a')
ON DUPLICATE KEY UPDATE
count = GREATEST(VALUES(count), count) ;
Varning: Detta kommer att misslyckas om det godkända värdet för count är NULL (istället för 2 ). Den uppdaterar kolumnen med NULL . Så det är bättre att använda IF() eller ett CASE klausul.
Om du inte föredrar (där går elegansen ...):
ON DUPLICATE KEY UPDATE
count = GREATEST(COALESCE(VALUES(count), count), count) ;