作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个类似于 :
的小统计表+----+----------+-------+------------+-------------+
| id | stat_key | value | created_at | customer_id |
+----+----------+-------+------------+-------------+
每天,cron 都会为每个客户执行一些计算并保存统计信息。
现在我想检索 30 天前的统计数据,或者如果客户是新客户,只要少于 30 天前的旧统计数据就可用。
所以我尝试执行以下查询,但对于超过 30 天的客户,返回的始终是所有时间的旧统计数据:
SELECT *
FROM stat_table
WHERE customer_id = 1 AND stat_key = 'some_key'
HAVING (DATE(created_at) = DATE(NOW() - INTERVAL 30 DAY)
OR DATE(created_at) = DATE(MIN(created_at)));
有没有办法做到这一点? "给我 30 天前的数据,如果找不到,你可以找到更早的数据"
谢谢!
最佳答案
您可以使用 limit
和 order by
来检索不超过 30 天的最旧行:
SELECT *
FROM stat_table
WHERE customer_id = 1
AND stat_key = 'some_key'
AND created_at > NOW() - INTERVAL 30 DAY
ORDER BY
created_at
LIMIT 1
关于Mysql 选择 1 个月前保存的记录,如果没有找到,则选择更早的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16688449/
我安装了 fakeLoader (jquery 预加载器)但我无法在页面加载前显示它。 在 mozilla 中它几乎可以正常工作(奇怪的是......),但在 Chrome 和 Opera 中,页面首
我试图通过以下代码在触摸事件上移动 ImageView: public class ScrollableImageView extends ImageView { private Gestur
我是一名优秀的程序员,十分优秀!