select c.id from t_seae a,t_name c where c.id = a.id and c.status = '考试 ' and a.time is not null and a.time = (select max(b.time) from t_seae b where a.id=b.id ) ;
这条 SQL 得到 我所要的ID
现需要 UPDATE t_name
SET t_name.status = '放假 '
WHERE t_name.id = ? /* 用我前面那个SQL的结果
利用where exists
UPDATE t_name t1
SET t1.t_name.status = '放假 '
WHERE exists
(select 'a ' from (select c.id from t_seae a,t_name c where c.id = a.id and c.status = '考试 ' and a.time is not null and a.time = (select max(b.time) from t_seae b where a.id=b.id ) ) t2 where t1.id=t2.id)
本文介绍了一种使用SQL语句来更新数据库中特定记录状态的方法。通过结合子查询与EXISTS关键字,可以精确地找到并更新那些符合特定条件的数据记录。这种技巧在需要基于历史记录的状态来更改最新记录的状态时特别有用。
13万+

被折叠的 条评论
为什么被折叠?



