MySQL,REPLACE INTO没有删除?

时间:2016-09-30 22:16:14

标签: mysql

我有这个表结构:

ID RATE1 RATE2 RATE3

并且空了。让我们给出一个新的速度:

REPLACE INTO rates (ID, RATE2) VALUES (99, 4);

表格将是:

99, 0, 4, 0
到目前为止一切顺利。另一个评级是:

REPLACE INTO rates (ID, RATE3) VALUES (99, 2);

这就是错误发生的地方。我得到了

99, 0, 0, 2

而不是:

99, 0, 4, 2

我也希望保留RATE2。有解决方法吗?

1 个答案:

答案 0 :(得分:5)

使用INSERT...ON DUPLICATE KEY UPDATE代替REPLACE

INSERT INTO ThisTable (id, rate3) VALUES (99, 2) 
  ON DUPLICATE KEY UPDATE rate3=VALUES(rate3);

这会保留现有行的其他列。

演示:http://sqlfiddle.com/#!9/0ae4a