计算一列并在mysql中的同一个表中更新另一列

时间:2017-11-08 12:51:22

标签: mysql

我想根据同一个表中另一列的计数更新一列。我试过下面的查询,但没有运气。

update
 table
set conntype='Multiple'
where (select COUNT(cpemac) as nos from table group by cpemac) > 1

我收到以下错误:

1093 - 您无法指定目标表'表'用于FROM子句

中的更新

1 个答案:

答案 0 :(得分:1)

在MySQL中,您需要使用JOIN

update t join
       (select cpemac, count(cpemac) as nos
        from t
        group by cpemac
       ) tt
       on t.cpemac = tt.cpemac
    set t.conntype = 'Multiple'
    where cnt > 1;

这是MySQL的一个特定限制。

但是,我应该注意,您的版本不适用于任何数据库。它将更新所有行或不更新行,具体取决于子查询的结果。子查询和外部查询之间没有任何关联。