Ich sehe, dass Sie Ihr Problem gelöst haben, aber um Ihre ursprüngliche Frage zu beantworten:
REPLACE INTO
tut nicht ein WHERE
haben Klausel.
Der REPLACE INTO
Syntax funktioniert genau wie INSERT INTO
außer dass alle alten Zeilen mit demselben Primärschlüssel oder eindeutigen Schlüssel automatisch gelöscht werden, bevor die neue Zeile eingefügt wird.
Das bedeutet, dass anstelle eines WHERE
-Klausel sollten Sie den Primärschlüssel zu den zu ersetzenden Werten hinzufügen, um Ihre Aktualisierung einzuschränken.
REPLACE INTO myTable (
myPrimaryKey,
myColumn1,
myColumn2
) VALUES (
100,
'value1',
'value2'
);
... liefert das gleiche Ergebnis wie ...
UPDATE myTable
SET myColumn1 = 'value1', myColumn2 = 'value2'
WHERE myPrimaryKey = 100;
...oder genauer gesagt:
DELETE FROM myTable WHERE myPrimaryKey = 100;
INSERT INTO myTable(
myPrimaryKey,
myColumn1,
myColumn2
) VALUES (
100,
'value1',
'value2'
);