gpt4 book ai didi

mysql - 如何按日期比较记录并仅返回符合条件的记录?

转载 作者:行者123 更新时间:2023-11-29 06:33:17 25 4
gpt4 key购买 nike

我有一个表,其中包含 teams 的列表,每个team有一个名为 update_at 的字段指定 datetime最后一次更新。

我需要检查每个 team如果需要更新。首先,我创建了一个查询,例如:

SELECT update_at FROM team WHERE id = 67

然后我比较update_at 7(这是一次更新与另一次更新之间的最大天数)。

这个解决方案很昂贵,因为如果我有 50 teams我需要打开50个连接并执行50 query .

所以我想到了类似的事情:

SELECT id FROM `team` WHERE (id = 67 AND update_at > DATE_SUB(SYSDATE(), Interval 7 Day)) 
AND id = 68 AND update_at > DATE_SUB(SYSDATE(), Interval 7 Day))

这里的第一个问题是冗余,我不是 sql专家,所以我不知道是否可以避免每次添加DATE_SUB(SYSDATE(), Interval 7 Day) .

第二个问题是查询不返回任何内容。

表结构如下:

id | name     | update_at
67 Tirana 2019-03-06 11:00:12
68 Partizan 2019-03-06 11:02:04
69 Lusitanos 2019-03-14 09:00:40

预期结果是67, 68因为update_at距离当前日期不到 7 天。记录69是从今天(2019-03-16)算起仅两天前更新的。

更新:

重复的内容不符合所有问题要求。因为我需要返回距离当前日期不到 7 天的 update_at 字段的每条记录的 id,而不是像另一个问题一样比较所有字段 –

最佳答案

如果我理解正确的话,您不会想知道表中的哪些 ID 缺乏最近的更新。相反,您有一组想要获取此信息的 ID。

这只是:

SELECT id
FROM team
WHERE update_at < DATE_SUB(CURRENT_DATE, INTERVAL 7 DAY)
AND id IN (10, 22, 34, 56 ...);

关于mysql - 如何按日期比较记录并仅返回符合条件的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55194893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com