Widzę, że rozwiązałeś swój problem, ale odpowiadając na Twoje pierwotne pytanie:
REPLACE INTO
czy nie mieć WHERE
klauzula.
REPLACE INTO
składnia działa dokładnie jak INSERT INTO
z wyjątkiem tego, że wszelkie stare wiersze z tym samym kluczem podstawowym lub unikalnym są automatycznie usuwane przed wstawieniem nowego wiersza.
Oznacza to, że zamiast WHERE
klauzuli, należy dodać klucz główny do wartości zastępowanych, aby ograniczyć aktualizację.
REPLACE INTO myTable (
myPrimaryKey,
myColumn1,
myColumn2
) VALUES (
100,
'value1',
'value2'
);
...dostarczy taki sam wynik jak...
UPDATE myTable
SET myColumn1 = 'value1', myColumn2 = 'value2'
WHERE myPrimaryKey = 100;
...a dokładniej:
DELETE FROM myTable WHERE myPrimaryKey = 100;
INSERT INTO myTable(
myPrimaryKey,
myColumn1,
myColumn2
) VALUES (
100,
'value1',
'value2'
);