Outra opção:
INSERT INTO tbl (count, otherID)
VALUES (2, 'a')
ON DUPLICATE KEY UPDATE
count = GREATEST(VALUES(count), count) ;
Aviso: Isso falhará se o valor passado para
count
é NULL
(em vez de 2
). Ele atualizará a coluna com NULL
. Então, é melhor usar o IF()
ou um CASE
cláusula. A não ser que prefira o (lá se vai a elegância...):
ON DUPLICATE KEY UPDATE
count = GREATEST(COALESCE(VALUES(count), count), count) ;