Pilihan lain:
INSERT INTO tbl (count, otherID)
VALUES (2, 'a')
ON DUPLICATE KEY UPDATE
count = GREATEST(VALUES(count), count) ;
Peringatan: Ini akan gagal jika nilai yang diteruskan untuk count
adalah NULL
(bukan 2
). Ini akan memperbarui kolom dengan NULL
. Jadi, lebih baik menggunakan IF()
atau CASE
ayat.
Kecuali Anda lebih suka (itulah keanggunan ...):
ON DUPLICATE KEY UPDATE
count = GREATEST(COALESCE(VALUES(count), count), count) ;