Un'altra opzione:
INSERT INTO tbl (count, otherID)
VALUES (2, 'a')
ON DUPLICATE KEY UPDATE
count = GREATEST(VALUES(count), count) ;
Avviso: Questo fallirà se il valore passato per count è NULL (invece di 2 ). Aggiornerà la colonna con NULL . Quindi, è meglio usare IF() o un CASE clausola.
A meno che tu non preferisca il (c'è l'eleganza...):
ON DUPLICATE KEY UPDATE
count = GREATEST(COALESCE(VALUES(count), count), count) ;