Một tùy chọn khác:
INSERT INTO tbl (count, otherID)
VALUES (2, 'a')
ON DUPLICATE KEY UPDATE
count = GREATEST(VALUES(count), count) ;
Cảnh báo: Điều này sẽ không thành công nếu giá trị được truyền cho count
là NULL
(thay vì 2
). Nó sẽ cập nhật cột với NULL
. Vì vậy, tốt hơn là sử dụng IF()
hoặc CASE
mệnh đề.
Trừ khi bạn thích (ở đó sang trọng ...):
ON DUPLICATE KEY UPDATE
count = GREATEST(COALESCE(VALUES(count), count), count) ;