mysql 日期区间查找 有什么方案可以快速地查找出缺失的日期

2019-09-12 23:13:42 +08:00
 zhady009
查找 2019-09-07 至 2019-09-11

假如缺失了 10 号和 8 号的数据 就从 api 中请求这 2 天的数据然后写进库里

现在 api 要收费了所以尽可能少调用..

顺序没有要求,只要能补上 api 可根据日期分组或者聚合

效果和 @Cacheable 差不多..把我的注解写上然后 aop 处理

因为这些数据都是在首页上的 如果进来就同步花费的时间就很长了

目前只想到这个方法可能可行吧..
4090 次点击
所在节点    Java
4 条回复
chenset
2019-09-12 23:38:56 +08:00
我以前的做法是

select * from (select 2019-09-01 as a union 2019-09-02 as a .... union 2019-09-11 as a) t where a not in(你的日期表)

伪代码, 手边没有执行环境. 大概就这个思路
aru
2019-09-14 12:17:01 +08:00
循环查一遍也行呀
m2276699
2019-09-14 15:18:04 +08:00
预设日期临时表 join 得出差值
rqrq
2019-09-15 11:19:43 +08:00
SELECT 日期 FROM table WHERE 日期 >= '2019-09-07' AND 日期 <= '2019-09-11' GROUP BY 日期
放到哈希表中,以日期为 key
循环一下开始到结束日期,查看哈希表是否 containsKey

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/600539

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX