php - 按天按周分组获取最近 4 周的记录

标签 php mysql

我需要一个查询,该查询允许我从 MySQL 表中选择过去 4 周的数据,但输出为从 4 周前的星期一开始的天数,无论当前是星期几。

数据库有一个用户表和一个事件表,其中具有用户 ID 的 FK。 带有 FK 到 ActivityID 的 ActivityStats 表

该查询将用于创建类似于以下内容的数组:

$array = [
   "userid" => "userid",
   "dateAdded" => "dateAdded",
   "week1" => $array = [
      "monday" => $array = [
         "activityid" => "1",
         "time" => "21",
         ...
      ]
      "tuesday" => $array = [
         "activityid" => "2",
         "time" => "16",
         ...
      ]
      "wednesday" => $array = [
         "activityid" => "3",
         "time" => "16",
         ...
      ]
      ...
   "week2" => $array = [
      "monday" => $array = [
         "activityid" => "8",
         "time" => "21",
         ...
      ]
      "tuesday" => $array = [
         "activityid" => "9",
         "time" => "16",
         ...
      ]
      "wednesday" => $array = [
         "activityid" => "10",
         "time" => "16",
         ...
      ]
      ...
   ]
   ...
];

我可以创建多个查询来实现这一目的,但可能需要 10 周或 52 周,并且单独的查询可能无法满足要求。

不知道从哪里开始。

最佳答案

假设您的时间戳列名为 timestamp,您可以:

SELECT CONCAT(YEAR(时间戳), '/', WEEK(时间戳)) AS 周

然后检索特定范围、按周排序等。

关于php - 按天按周分组获取最近 4 周的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32835453/

相关文章:

php - 为什么mysql查询中双引号消失了?

php - 我应该对所有表使用用户的外键吗?

php - Yii2 - 使用 AND + 多个 OR 生成 ActiveRecord 查询

mysql - 处理消息表和相应的响应

php - 对非对象调用成员函数execute()

php - "Properly"循环遍历(我的)SQL 响应

php - Zend_Db_Table_Row 类的对象无法转换为字符串

php - 如何创建一个无论字符序列如何都匹配的正则表达式?

mysql 有内部(特殊)字 "to"吗?

php - 根据 mysql 数据库项目的选择禁用输入字段