mySQL 使用最大日期更新值

标签 mysql sql database

我有这个查询,我希望能够在我的程序完成执行请求时将 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/

相关文章:

php - 使用 PDO 执行高级搜索查询的问题

sql - Azure 流分析 - 计算线性回归

java - 一对一注释不会将外键插入表中

mysql - SQL乘法查询

mysql - 无法连接辅助表中的元素

mysql - 如何在事务中包装 mysql 存储函数

sql - plpgsql 错误 : RETURN cannot have a parameter in function returning void

sql - CASE 语句什么也不做

java - 如何连接到 BeanFactoryPostProcessor 中的数据库?

php - 获取一个月的总计和限制结果 MySQL