別のオプション:
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) ;