我可以看到你已经解决了你的问题,但要回答你原来的问题:
REPLACE INTO
does 不是 have a WHERE
clause.
The REPLACE INTO
语法的工作方式完全就像INSERT INTO
但在插入新行之前,具有相同主键或唯一键的任何旧行都会被自动删除。
这意味着代替WHERE
子句中,您应该将主键添加到要替换的值中以限制您的更新。
REPLACE INTO myTable (
myPrimaryKey,
myColumn1,
myColumn2
) VALUES (
100,
'value1',
'value2'
);
...将提供与...相同的结果
UPDATE myTable
SET myColumn1 = 'value1', myColumn2 = 'value2'
WHERE myPrimaryKey = 100;
...或更准确地说:
DELETE FROM myTable WHERE myPrimaryKey = 100;
INSERT INTO myTable(
myPrimaryKey,
myColumn1,
myColumn2
) VALUES (
100,
'value1',
'value2'
);