mysql - MySQL 返回特定日期
问题描述
我有一个充满视频和视频帖子 ID 的表格。有些具有相同的标题,但在几天后重新发布,如屏幕截图所示。因此,同一个视频有不同的Id。如果我需要在每个标题的原始创建日期的 7 天内检索视图,无论已进行多少次转发,我如何排除额外的天数,例如我的帖子中的最后 3 行?由于创建日期是 1 月 5 日,在这种情况下,我只想要 1 月 6 日、7 日、8 日、9 日、10 日、11 日和 12 日的视图。不包括 1 月 5 日的原因是因为视频通常在创建日期后一天发布。
在某些情况下,我可能会在原始创建日期后的 7 天内转发 3 次。此示例仅对同一视频进行了 1 次转发。
解决方案
如果您使用的是 MySQL 8.0,您可以min()
为此创建一个窗口:
select *
from (
select t.*, min(creation_date) over(partition by title) first_creation_date
from mytable t
) t
where total_days <= first_creation_date + interval 7 days
在早期版本中,您可以使用相关子查询:
select t.*
from mytable t
where total_days <= (
select min(creation_date) + interval 7 days
from mytable t1
where t1.title = t.title
)
推荐阅读
- python - 在 Python 中控制子进程流的最佳方法是什么?
- reactjs - Material ui,桌面到移动响应式过渡的布局组件
- python - 是否可以在溢出的 QTableWidgetItem 中首先显示字符串的右侧?
- javascript - jsdoc 如何描述返回 SAME CLASS 变量的静态类方法
- asp.net-core - 在服务中注入控制器
- c# - 如何使用 LINQ 和变量动态查询数据库?
- html - 滑块输入 [范围] 未显示在 Edge 中,但可以正常显示在其他所有浏览器中。开车送我备用
- apache-httpcomponents - Apache Http 异步客户端的内容 GZIP 解压缩
- c++ - 读取包含 10 个数据项的文件,这些数据项填充数组,在 struct 中创建并在填充数组后显示数组的内容
- python - 想要从列表中提取和转换项目以打印为小于特定数字的数字