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'
);