只更新Mysql表中的所有重复键,不添加新条目

时间:2014-07-20 10:59:07

标签: mysql sql

我正在尝试更新重复的密钥而不是向Urldup表添加新条目。

这是我正在使用的查询,但这也会添加新条目。

INSERT INTO urldup (url, date, projectname)
Select url, date, projectname
From sample_temp s1
ON Duplicate key update date = now();

我想更新重复的密钥,而不是插入任何新数据。

url列是唯一键。

2 个答案:

答案 0 :(得分:1)

我已经弄明白了:

INSERT INTO urldup (url, date, projectname)
Select url, date, projectname
From sample_temp s1
Where url = s1.url
ON Duplicate key update date = now();

答案 1 :(得分:1)

如果您只想进行更新,请使用update

UPDATE urldup u
    SET date = now()
    WHERE exists (select 1 from sample_temp t where u.url = s.url);

这假设复制基于字段url。如果涉及其他字段,您可以在where子句中添加更多条件。