ON DUPLICATE KEY UPDATE更新为新值

时间:2013-09-20 18:44:17

标签: mysql

我有简单的表onupdate,有两列:ID和Content以及一条记录:[1,'old content']。 我想在添加记录[1,'新内容']时用新内容替换内容。是否可以使用ON DUPLICATE KEY UPDATE语法?通过这种方式,旧的价值仍然存在:

INSERT INTO onupdate (id, content) VALUES (1, 'newcontnet')
ON DUPLICATE KEY UPDATE
  onupdate.content = onupdate.content

该示例仅用于说明目的。请不要提出UPDATE查询,因为我不知道ID是否存在。

2 个答案:

答案 0 :(得分:3)

ON DUPLICATE KEY UPDATE onupdate.content = onupdate.content就像说“如果id已经存在,请content并将其替换为自己”。您可能想要将新数据放在原位:

INSERT INTO onupdate (id, content) VALUES (1, 'newcontnet')
ON DUPLICATE KEY UPDATE
  onupdate.content = 'newcontnet'

答案 1 :(得分:2)

INSERT
INTO    onupdate
        (id, content)
VALUES  (1, 'newcontnet')
ON DUPLICATE KEY
UPDATE  content = VALUES(content)

VALUES(content)表示“INSERT发生时会存在的价值”