如果其他字段在同一个表中有重复,则更新字段

时间:2013-11-01 03:22:37

标签: mysql

我有一张叫做颜色的桌子。在此表中有两个字段:color和is_duplicate。如果在颜色列中找到多个相同的值,我想在is_duplicate字段中放置1。

这是我到目前为止所尝试的内容,但由于我是mysql语法的新手,因此会出现错误。

update colors
set is_duplicate = 1
where color 
HAVING COUNT(*) > 1

我正在这样做,所以我可以删除重复的所有副本,稍后再返回查看哪些记录一次重复。

有什么建议吗?谢谢。

1 个答案:

答案 0 :(得分:0)

试试这个:

update colors tab1 join (select color, count(*) as num_color
         from colors group by color 
         having count(*) > 1
        ) tab2 on tab1.color = tab2.color       
set is_duplicate = 1