一尘不染

MySQL#1093-您无法在FROM子句中指定目标表'giveaways'进行更新

mysql

我试过了:

UPDATE giveaways SET winner = '1' WHERE ID = (SELECT MAX(ID) FROM giveaways)

但是它给出:

#1093-您不能为FROM子句中的更新指定目标表’giveaways’

这篇文章似乎相关,但我无法使其适应我的查询。我如何使它工作?


阅读 255

收藏
2020-05-17

共1个答案

一尘不染

这是因为您的更新可能是周期性的......如果更新该记录将导致事情发生这使得WHERE条件FALSE?您知道并非如此,但引擎并非如此。操作中桌子上也可能有相反的锁。

我认为您可以这样做(未经测试):

UPDATE
    giveaways
SET
    winner = '1'
ORDER BY
    id DESC
LIMIT 1

阅读更多

2020-05-17