我有这个查询,我希望能够在我的程序完成执行请求时将 exec 值更新为 TRUE 并将其保存到我的数据库中,以便在我执行时将其用作队列有多次执行,但是,每当我尝试使用此查询时,它都会给我一个错误。
UPDATE motor
SET exec=1
where time=(SELECT max(time)
FROM motor
WHERE exec=0);
错误:
ERROR 1093 (HY000): You can't specify target table 'motor' for update in FROM clause
我该怎么做?
最佳答案
这是因为您的更新可能是循环的。
使用此代码代替:
UPDATE motor
SET exec = 1
WHERE exec = 0
ORDER BY time DESC
LIMIT 1;
关于mySQL 使用最大日期更新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13502711/