Vedo che hai risolto il tuo problema, ma per rispondere alla tua domanda originale:
REPLACE INTO
non avere un WHERE
clausola.
Il REPLACE INTO
la sintassi funziona esattamente come INSERT INTO
tranne per il fatto che tutte le vecchie righe con la stessa chiave primaria o univoca vengono automaticamente eliminate prima dell'inserimento della nuova riga.
Ciò significa che invece di un WHERE
clausola, dovresti aggiungere la chiave primaria ai valori da sostituire per limitare il tuo aggiornamento.
REPLACE INTO myTable (
myPrimaryKey,
myColumn1,
myColumn2
) VALUES (
100,
'value1',
'value2'
);
...fornirà lo stesso risultato di...
UPDATE myTable
SET myColumn1 = 'value1', myColumn2 = 'value2'
WHERE myPrimaryKey = 100;
...o più esattamente:
DELETE FROM myTable WHERE myPrimaryKey = 100;
INSERT INTO myTable(
myPrimaryKey,
myColumn1,
myColumn2
) VALUES (
100,
'value1',
'value2'
);