これは、あなたが望むもののかなり直接的な翻訳です:
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;