我期望的目標(biāo)是:查找 Proxies 表中 count 小于10的一條數(shù)據(jù)欣硼,并把 count 加上1明刷,代碼如下:
UPDATE Proxies SET count=count+1 WHERE count<10 ORDER BY createdAt ASC LIMIT 1;
現(xiàn)實是骨干的廊酣,運行發(fā)現(xiàn)報錯了赐纱,提示更新不能與 ORDER BY 一起使用搅轿。
解決方案:
UPDATE "Proxies"
SET "count"="count"+1
WHERE "id" IN (
SELECT "Proxies"."id"
FROM "Proxies"
WHERE "count"<10
ORDER BY "Proxies"."createdAt"
LIMIT 1
)
RETURNING "count",...
// 或者
UPDATE "Proxies"
SET "count"="count"+1
FROM (
SELECT "Proxies"."id"
FROM "Proxies"
WHERE "count"<10
ORDER BY "Proxies"."createdAt"
LIMIT 1
) AS tab1
WHERE "Proxies"."id"=tab1."id"