当前位置: 首页 > 面试题库 >

在一定时间间隔后如何更新表

盖弘毅
2023-03-14
问题内容

匹配条件后,如何在一段时间后更新表?

tb_contest
id race_id名称为is_expire
1101新0
2102旧0

tb_answer
Competition_id answer_id日期
101 1 2012-02-02
101 2 2012-09-14
102 5 2012-06-01

我需要tb_contest在满足某些条件后进行更新,并is_expire=1在2天后根据收到的最新答案(即e)进行更新2012-03-14,因此tb_contest应在上进行更新2012-09-16


问题答案:

试试这个

UPDATE tb_contest a INNER JOIN
        (
            SELECT contest_ID, MAX(`date`) maxDate
            FROM tb_answer
            GROUP BY contest_ID
        ) b ON a.contest_ID = b.contest_ID
SET a.is_expire = 1
WHERE   DATEDIFF(CURDATE(), b.maxDate) >= 2 AND 
        a.is_expire = 0

如此看来,这两个表是由相连的,contest_ID并且具有的最新回答日期tb_answer。通过使用DATEDIFF()我们可以知道今天的日期和比赛的答案之间的差异。



 类似资料:
  • 首先,我知道从MySQL本身尝试这样做是不允许的: http://dev.mysql.com/doc/refman/5.6/en/stored-program-restrictions.html 当我尝试使用,我得到了“存储过程中不允许加载数据”。 我是在MySQL中移动数据的初学者,我意识到这可能不是它设计用来处理的任务。因此,我应该使用什么方法从CSV文件中获取数据并定期将其附加到表中?(我对

  • 我如何设置一个cron运行每天从12点到11点,它将暂停20分钟,并将重新启动在上午11点20分。例如,有谁能帮助我如何做到这一点在spring-引导?

  • 假设我有一个这样的范围列表 现在我想找到一个范围,比如。我的算法应该给我这个范围的所有范围。例如,这个的输出应该是 <代码>输出-[1,3]、[2,5]、[4,6]、[8,10] 我该如何着手解决这个问题? PS:我知道段树可能会有所帮助。我可以在其中构建树来存储间隔并查询位于间隔内的Point,但如何在给定间隔的情况下获取所有间隔。

  • 间隔有开始和结束时间。间隔可能重叠。可能有几个包含时间t的间隔。只返回其中一个就可以了。 这是一个面试问题。我能够解决这个问题,方法是根据结束对间隔进行排序,根据开始对另一个时间进行排序,并取具有匹配开始和结束的间隔的交点。显然有更多优化的解决方案。 这里有一个例子:[1,5][2,10][3,6][2,9],目标是8。在这种情况下,[2,10]和[2,9]中的任何一个都是正确答案。 我想问题的关

  • 接口说明 更新相机位置(名称和时间间隔) 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 POST /api/viewpoint/1.0.0/updateNameTime 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 id string form 是 视角ID name string form 是 视角名称 time

  • # interval(date) Alias for interval.floor(date). For example, d3.time.day(new Date()) returns midnight (12:00 AM) on the current day, in local time. # interval.floor(date) Rounds down the specified da