我提前道歉,我不知道我正在尝试使用的工具的术语。
我有一个带有 startdate 字段(以及其他)的事件表和一个引用事件 id 的相关重复表。重复表存储事件重复的星期几以及是否每月、每周等。我希望做的是在 SQL 查询中复制重复事件,这样我的最终结果将具有相同的事件在开始日期订购时不同的地方,所以我可以限制正确分页的结果。
我正在考虑创建虚拟表和克隆表文档,但我无法将这些示例应用于我的情况。
更新:
希望我能详细说明这一点。
我现在所拥有的基础知识是SELECT * FROM 'events' WHERE 'start_date' >= TODAY() ORDER BY 'start_date LIMIT 20
从今天开始的每一个事件,但我正在对结果进行分页,因此一次只显示 20 个。
我想做的是创建一个临时的“虚拟”表,其中包含具有关联重复条目的事件,我将start_date
根据重复信息更改该表。因此,如果它是每周重复,则第二个表将填充相同的事件,除了每个事件start_date
距上一个事件 7 天。然后我可以对这两个表进行连接,将这些结果限制为我想要的 20 个分页限制,并在正确的位置获得事件的查询结果并且易于执行分页。
我知道在 mySQL 中创建一个函数可能是正确的,因为我想我必须遍历一些信息才能添加到日期。我只知道用 PHP 编写的 SQL 的水平,所以函数有点超出我的范围,尽管稍微阅读一下似乎不太难掌握。我对如何创建一个假表、在循环中向其中添加条目然后在其上使用连接将其与第一个查询合并更加困惑。
我也开始怀疑在 mySQL 中执行此操作的开销,如果我成功地使其工作,我如何缓存这些结果,尽管现在这只是事后的想法。
感谢那些试图帮助我的人,由于某种原因,我无法用语言表达这个问题。