Друг вариант:
INSERT INTO tbl (count, otherID)
VALUES (2, 'a')
ON DUPLICATE KEY UPDATE
count = GREATEST(VALUES(count), count) ;
Предупреждение: Това ще се провали, ако предадената стойност за count
е NULL
(вместо 2
). Той ще актуализира колоната с NULL
. Така че е по-добре да използвате IF()
или CASE
клауза.
Освен ако не предпочитате (там отива елегантността...):
ON DUPLICATE KEY UPDATE
count = GREATEST(COALESCE(VALUES(count), count), count) ;