Banyak pengembang masih menjalankan kueri untuk memeriksa apakah ada bidang dalam tabel dan kemudian mengeksekusi kueri penyisipan atau pembaruan sesuai dengan hasil kueri pertama. Coba gunakan sintaks ON DUPLICATE KEY, ini jauh lebih cepat dan lebih baik kemudian mengeksekusi 2 query. Info lebih lanjut dapat ditemukan di sini
jika Anda ingin mempertahankan nilai yang sama untuk c, Anda dapat melakukan pembaruan dengan nilai yang sama
perbedaan antara 'ganti' dan 'pada kunci duplikat':
jika tabel Anda tidak memiliki kunci utama atau kunci unik, penggantian tidak masuk akal.
Anda juga dapat menggunakan VALUES
berfungsi untuk menghindari keharusan menentukan nilai aktual dua kali. Misalnya. bukannya
INSERT INTO table (a,b,c) VALUES (4,5,6) ON DUPLICATE KEY UPDATE c=6;
Anda dapat menggunakan
INSERT INTO table (a,b,c) VALUES (4,5,6) ON DUPLICATE KEY UPDATE c=VALUES(c);
Dimana VALUES(c)
akan mengevaluasi ke nilai yang ditentukan sebelumnya (6).