Puedo ver que ha resuelto su problema, pero para responder a su pregunta original:
REPLACE INTO
no tener un WHERE
cláusula.
El REPLACE INTO
la sintaxis funciona exactamente como INSERT INTO
excepto que las filas antiguas con la misma clave principal o única se eliminan automáticamente antes de insertar la nueva fila.
Esto significa que en lugar de un WHERE
cláusula, debe agregar la clave principal a los valores que se reemplazan para limitar su actualización.
REPLACE INTO myTable (
myPrimaryKey,
myColumn1,
myColumn2
) VALUES (
100,
'value1',
'value2'
);
...proporcionará el mismo resultado que...
UPDATE myTable
SET myColumn1 = 'value1', myColumn2 = 'value2'
WHERE myPrimaryKey = 100;
...o más exactamente:
DELETE FROM myTable WHERE myPrimaryKey = 100;
INSERT INTO myTable(
myPrimaryKey,
myColumn1,
myColumn2
) VALUES (
100,
'value1',
'value2'
);