Další možnost:
INSERT INTO tbl (count, otherID)
VALUES (2, 'a')
ON DUPLICATE KEY UPDATE
count = GREATEST(VALUES(count), count) ;
Upozornění: To se nezdaří, pokud byla předána hodnota count
je NULL
(místo 2
). Aktualizuje sloupec NULL
. Je tedy lepší použít IF()
nebo CASE
doložka.
Pokud preferujete (tady jde o eleganci...):
ON DUPLICATE KEY UPDATE
count = GREATEST(COALESCE(VALUES(count), count), count) ;