Виждам, че сте решили проблема си, но за да отговоря на първоначалния си въпрос:
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'
);