次のクエリを使用して、サブクエリによって返された特定の行の列を更新しようとしています。サブクエリは、更新が必要な行の正しい ID を選択します。
UPDATE 4_dev.Images AS Im
SET Im.primary=1
WHERE EXISTS (
SELECT Img.imageId FROM (
SELECT I.id AS imageId,
I.userId,
I.date,
SUM(I.primary) AS hasPrimary,
COUNT(*) AS numImages
FROM 4_dev.Images AS I
GROUP BY I.userId
HAVING numImages>=1 AND hasPrimary=0) AS Img)
ただし、このクエリは、SELECT サブクエリの行だけでなく、すべての行を更新します。
これは PHP で 2 つの部分に分割するのは簡単ですが、1 つのクエリで更新する方法を知りたいです。ありがとう。