小编use*_*860的帖子

MySQL 使用具有和分组依据更新与选择相同的表

我有一个 Select 查询,它返回时间少于 8 天的所有会话的会话 ID。它工作得很好!

SELECT sessionID FROM session WHERE sessionStatus = 'open' GROUP BY sessionID HAVING MAX(refTime) <= 8;
Run Code Online (Sandbox Code Playgroud)

但是,我正在尝试更新表,以便会话 ID 小于 8 天的每条记录都将其 sessionStatus 更改为“已关闭”。从stackoverflow我知道我无法更新我也从中选择的表,并且拥有和分组依据是使这变得更加复杂的agerate函数。

我试过这个,但没有骰子!

UPDATE session 
SET sessionStatus='closed'
WHERE sessionID = (select * from (SELECT MAX(sessionID) FROM session where sessionStatus = 'open') as t);
Run Code Online (Sandbox Code Playgroud)

我真的很感激任何帮助!

mysql

5
推荐指数
1
解决办法
2026
查看次数

标签 统计

mysql ×1