【问题标题】:Select records from MYSQL database grouped by day从MYSQL数据库中选择按天分组的记录
【发布时间】:2013-02-04 08:36:32
【问题描述】:

我有一个带有时间戳的记录数据库。我想从数据库中提取按天分组的记录,所以如果还有其他具有相同日期(24 小时跨度)的记录,我希望将它们组合在一起。这可以用 MYSQL 完成,还是我必须使用 PHP 提取记录并将它们组织成数组?

这是我的表格截图:

到目前为止,这是我的模型函数:

public function getUsersMoves($options) {   
        $query = "SELECT * FROM myzone_user_hr_records";
        if(isset($options['GUID'])) {
            $query .= " WHERE GUID = '" . $options['GUID'] . "'";
        }
        if((isset($options['minHR'])) &&  isset($options['maxHR'])) {
            $query .= " AND (hr BETWEEN '" . (int)$options['minHR'] . "' AND '" . (int)$options['maxHR'] . "')";
        } else if (isset($options['zone'])) {
            $query .= " AND zone = '" . (int)$options['zone'] . "'";
        }
        if(isset($options['activity'])) {
            $query .= " AND title = '" . $options['activity'] . "'";
        }

        $query .= " ORDER BY time DESC";

        $query = $this->db->query($query);
        return $query->result_array();
    }

还有我的控制器代码:

$moves = $this->myzone_model->getUsersMoves($options);

我希望对数据进行排序,以便如果这些记录在时间戳中具有相同的日期(例如 (2012-11-20)),它们将被组合在一起。

谢谢

【问题讨论】:

  • 你遇到了什么问题?
  • 只在select语句中使用了一些聚合函数时,可以使用group by......

标签: php mysql codeigniter timestamp


【解决方案1】:

试试这个:

SELECT *, DATE(time) AS date FROM [whatever you want] GROUP BY date

【讨论】:

    【解决方案2】:
    select * from TABLE where `time` like '2012-11-20%'
    

    我建议的选项有效,因为 WHERE 中的 LIKE 条件从时间字段中选择以 2012-11-20 开头的所有日期。这意味着一天中的时间无关紧要,它将返回当天的所有结果。

    要完成这项工作,您必须记住使用 LIKE,然后在末尾添加通配符 - %。如果需要,您还可以在开头添加通配符。返回多年的所有日期(12 月 11 日)的示例如下:

    SELECT * FROM TABLE WHERE `time` like '%-12-11%'
    

    【讨论】:

    • 如果你能解释一下就好了。
    • @wtsang02 这里没有什么要解释的。您只需查询表,使用通配符在字段 TIME 上有一个 WHERE 条件。 LIKE 部分意味着它不是字面上比较,它只比较第一部分(日/月/年组合),其余部分可以是任何东西(因为通配符)。所以任何不同的时间(在同一天内)仍然会被退回。如果您想了解更多信息,请查看:dev.mysql.com/doc/refman/5.0/en/…
    • 如果您输入的答案太少,系统会自动标记为低质量。在代码中添加一些解释总是更好。
    • @wtsang02 哦,好吧,我不知道系统这样做了。我一直想知道为什么人们似乎写了 10,000 个单词,而 100 个单词可以很容易地解释:) 我会更新答案以使其更清晰。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-02
    • 1970-01-01
    • 2019-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-02
    相关资源
    最近更新 更多