我有一张必须确认他们对事件的帮助的人的表格。本次活动容量有限。我想计算确认人数并在同一个原子查询中更新确认状态。
假设 PEOPLE 表有 id 和确认字段。
我尝试过这样的事情:
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 依次确认,我想执行更新(确认 = 'Y')直到 id = 5。
我确定我错过了一些东西,但我不知道它是什么。
提前致谢。问候。