如果行重复,我想更新列

时间:2014-02-05 12:04:57

标签: php mysql sql

我有下表名为information

enter image description here

如上图所示,有一个名为number的列,此列有许多重复值。

我想要的是,如果该行重复,请将其tab单元格更新为1,否则请将其保留为0 < / p>

以下是我的所作所为。

$query = mysql_query("UPDATE information SET tab='1' WHERE number = (SELECT distinct number FROM information)");

2 个答案:

答案 0 :(得分:4)

UPDATE information
SET tab = '1'
WHERE number IN (SELECT number
                 FROM (SELECT number
                       FROM information
                       GROUP BY number
                       HAVING count(*) > 1
                      ) AS temp)

子查询将返回所有重复的number值。

编辑:我已经尝试过,MySQL显示1093错误。我刚刚根据找到的解决方案编辑了查询here

答案 1 :(得分:1)

我会使用updatejoin

执行此操作
UPDATE information i join
       (select number
        from information i
        group by number
        having count(*) > 1
       ) idups
       on i.number = idups.number
    SET i.tab = '1';