Jeg kan se, at du har løst dit problem, men for at besvare dit oprindelige spørgsmål:
REPLACE INTO
gør ikke har en WHERE
klausul.
REPLACE INTO
syntaks fungerer præcis som INSERT INTO
bortset fra at alle gamle rækker med den samme primære eller unikke nøgle automatisk slettes, før den nye række indsættes.
Dette betyder, at i stedet for en WHERE
klausul, bør du tilføje den primære nøgle til de værdier, der erstattes for at begrænse din opdatering.
REPLACE INTO myTable (
myPrimaryKey,
myColumn1,
myColumn2
) VALUES (
100,
'value1',
'value2'
);
... vil give det samme resultat som...
UPDATE myTable
SET myColumn1 = 'value1', myColumn2 = 'value2'
WHERE myPrimaryKey = 100;
...eller mere præcist:
DELETE FROM myTable WHERE myPrimaryKey = 100;
INSERT INTO myTable(
myPrimaryKey,
myColumn1,
myColumn2
) VALUES (
100,
'value1',
'value2'
);