这是一种方法,它是对您想要的内容的相当直接的翻译:
UPDATE debiteuren_afleveradressen
SET nummer = 1
WHERE bedrijf in (SELECT bedrijf
FROM debiteuren_afleveradressen
GROUP BY bedrijf
having count(*) = 1
);
但是,MySQL 有一个奇怪的限制,您必须将其写为:
UPDATE debiteuren_afleveradressen
SET nummer = 1
WHERE bedrijf in (select bedrijf
from (SELECT bedrijf
FROM debiteuren_afleveradressen
GROUP BY bedrijf
having count(*) = 1
) t
);
MySQL 对这种类型的查询可能有点低效。我建议将其改写为join
:
UPDATE debiteuren_afleveradressen join
(SELECT bedrijf, count(*) as TotalCount
FROM debiteuren_afleveradressen
GROUP BY bedrijf
) agg
on agg.bedrijf = debiteuren_afleveradressen.bedrijf and
TotalCount = 1
SET nummer = 1;