Posso ver que você resolveu seu problema, mas para responder à sua pergunta original:
REPLACE INTO
não tem um WHERE
cláusula. O
REPLACE INTO
sintaxe funciona exatamente como INSERT INTO
exceto que todas as linhas antigas com a mesma chave primária ou exclusiva são excluídas automaticamente antes que a nova linha seja inserida. Isso significa que em vez de um
WHERE
cláusula, você deve adicionar a chave primária aos valores que estão sendo substituídos para limitar sua atualização. REPLACE INTO myTable (
myPrimaryKey,
myColumn1,
myColumn2
) VALUES (
100,
'value1',
'value2'
);
... fornecerá o mesmo resultado que ...
UPDATE myTable
SET myColumn1 = 'value1', myColumn2 = 'value2'
WHERE myPrimaryKey = 100;
...ou mais exatamente:
DELETE FROM myTable WHERE myPrimaryKey = 100;
INSERT INTO myTable(
myPrimaryKey,
myColumn1,
myColumn2
) VALUES (
100,
'value1',
'value2'
);