Jag kan se att du har löst ditt problem, men för att svara på din ursprungliga fråga:
REPLACE INTO
gör inte har en WHERE
klausul.
REPLACE INTO
syntax fungerar exakt som INSERT INTO
förutom att alla gamla rader med samma primära eller unika nyckel raderas automatiskt innan den nya raden infogas.
Detta betyder att istället för en WHERE
sats, bör du lägga till primärnyckeln till de värden som ersätts för att begränsa din uppdatering.
REPLACE INTO myTable (
myPrimaryKey,
myColumn1,
myColumn2
) VALUES (
100,
'value1',
'value2'
);
...ger samma resultat som...
UPDATE myTable
SET myColumn1 = 'value1', myColumn2 = 'value2'
WHERE myPrimaryKey = 100;
...eller mer exakt:
DELETE FROM myTable WHERE myPrimaryKey = 100;
INSERT INTO myTable(
myPrimaryKey,
myColumn1,
myColumn2
) VALUES (
100,
'value1',
'value2'
);