イベントへの支援を確認する必要がある人のテーブルがあります。このイベントは定員に限りがあります。同じアトミッククエリ内で確定人数を計算し、確定ステータスを更新したい。
PEOPLE テーブルに id フィールドと Confirmed フィールドがあるとします。
私はこのようなことを試しました:
UPDATE PEOPLE
SET confirmed = 'Y'
WHERE
id = 'ID_VALUE'
AND
(
SELECT amount
FROM
(
SELECT
COUNT(*) AS amount
FROM
PEOPLE AS p
WHERE
p.confirmed = 'Y'
) AS aux1
) < CAPACITY_LIMIT
表の例:
-------------------
| id | confirmed |
-------------------
| 1 | N |
-------------------
| 2 | N |
-------------------
| ... | ... |
-------------------
| 10 | N |
-------------------
CAPACITY_LIMIT = 5 で、id = 1 から id = 10 まで順次確認しようとすると、id = 5 まで更新 (confirm = 'Y') を実行したいと考えています。
私は何かが欠けていると確信していますが、それが何であるかわかりません。
前もって感謝します。よろしく。