Inna opcja:
INSERT INTO tbl (count, otherID)
VALUES (2, 'a')
ON DUPLICATE KEY UPDATE
count = GREATEST(VALUES(count), count) ;
Ostrzeżenie: To się nie powiedzie, jeśli przekazana wartość dla count jest NULL (zamiast 2 ). Zaktualizuje kolumnę o NULL . Dlatego lepiej jest użyć IF() lub CASE klauzula.
Chyba że wolisz (idzie elegancja...):
ON DUPLICATE KEY UPDATE
count = GREATEST(COALESCE(VALUES(count), count), count) ;