Eine weitere Option:
INSERT INTO tbl (count, otherID)
VALUES (2, 'a')
ON DUPLICATE KEY UPDATE
count = GREATEST(VALUES(count), count) ;
Warnung: Dies schlägt fehl, wenn der übergebene Wert für count
ist NULL
(statt 2
). Die Spalte wird mit NULL
aktualisiert . Daher ist es besser, das IF()
zu verwenden oder ein CASE
Klausel.
Es sei denn, Sie bevorzugen die (da geht die Eleganz ...):
ON DUPLICATE KEY UPDATE
count = GREATEST(COALESCE(VALUES(count), count), count) ;