我有这个表结构:
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。有解决方法吗?
答案 0 :(得分:5)
使用INSERT...ON DUPLICATE KEY UPDATE
代替REPLACE
。
INSERT INTO ThisTable (id, rate3) VALUES (99, 2)
ON DUPLICATE KEY UPDATE rate3=VALUES(rate3);
这会保留现有行的其他列。