問題は解決したと思いますが、元の質問に答えるには:
REPLACE INTO
しません WHERE
があります 条項。
REPLACE INTO
構文は正確に機能します INSERT INTO
のように ただし、同じ主キーまたは一意のキーを持つ古い行は、新しい行が挿入される前に自動的に削除されます。
これは、WHERE
の代わりに 条項では、更新を制限するために、置き換えられる値に主キーを追加する必要があります。
REPLACE INTO myTable (
myPrimaryKey,
myColumn1,
myColumn2
) VALUES (
100,
'value1',
'value2'
);
...と同じ結果が得られます...
UPDATE myTable
SET myColumn1 = 'value1', myColumn2 = 'value2'
WHERE myPrimaryKey = 100;
...またはより正確に:
DELETE FROM myTable WHERE myPrimaryKey = 100;
INSERT INTO myTable(
myPrimaryKey,
myColumn1,
myColumn2
) VALUES (
100,
'value1',
'value2'
);