Saya dapat melihat bahwa Anda telah memecahkan masalah Anda, tetapi untuk menjawab pertanyaan awal Anda:
REPLACE INTO apakah tidak memiliki WHERE klausa.
REPLACE INTO sintaks berfungsi tepat seperti INSERT INTO kecuali bahwa setiap baris lama dengan kunci utama atau unik yang sama akan dihapus secara otomatis sebelum baris baru dimasukkan.
Ini berarti bahwa alih-alih WHERE klausa, Anda harus menambahkan kunci utama ke nilai yang diganti untuk membatasi pembaruan Anda.
REPLACE INTO myTable (
myPrimaryKey,
myColumn1,
myColumn2
) VALUES (
100,
'value1',
'value2'
);
...akan memberikan hasil yang sama seperti...
UPDATE myTable
SET myColumn1 = 'value1', myColumn2 = 'value2'
WHERE myPrimaryKey = 100;
...atau lebih tepatnya:
DELETE FROM myTable WHERE myPrimaryKey = 100;
INSERT INTO myTable(
myPrimaryKey,
myColumn1,
myColumn2
) VALUES (
100,
'value1',
'value2'
);