Vidím, že jste svůj problém vyřešili, ale abych odpověděl na vaši původní otázku:
REPLACE INTO
ne mít WHERE
doložka.
REPLACE INTO
syntaxe funguje přesně jako INSERT INTO
kromě toho, že všechny staré řádky se stejným primárním nebo jedinečným klíčem jsou před vložením nového řádku automaticky odstraněny.
To znamená, že místo WHERE
klauzule, měli byste přidat primární klíč k nahrazovaným hodnotám, abyste omezili aktualizaci.
REPLACE INTO myTable (
myPrimaryKey,
myColumn1,
myColumn2
) VALUES (
100,
'value1',
'value2'
);
...poskytne stejný výsledek jako...
UPDATE myTable
SET myColumn1 = 'value1', myColumn2 = 'value2'
WHERE myPrimaryKey = 100;
...nebo přesněji:
DELETE FROM myTable WHERE myPrimaryKey = 100;
INSERT INTO myTable(
myPrimaryKey,
myColumn1,
myColumn2
) VALUES (
100,
'value1',
'value2'
);