我想基于同一表中另一列的计数来更新一列。我尝试下面的查询,但没有运气。
update
table
set conntype='Multiple'
where (select COUNT(cpemac) as nos from table group by cpemac) > 1
我收到以下错误:
1093-您无法在FROM子句中指定目标表“表”进行更新
最佳答案
在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的特定限制。
但是,我应该指出,您的版本无法在任何数据库中使用。根据子查询的结果,它将更新所有行或不更新任何行。子查询和外部查询之间没有连接。