MySQL + PHP(按日期分组)

2 php mysql sql group-by

我正在尝试输出按存储在数据库中的日期(unix 时间戳)分组的不同项目的列表。

我需要 MySQL(查询)和 PHP(输出)方面的帮助。

MySQL表

身份证 | 主题 | 时间
1 | 测试1 | 1280278800
2 | 测试2 | 1280278800
3 | 测试3 | 1280365200
4 | 测试4 | 1280451600
5 | 测试5 | 1280451600

输出

今天
test5
test4

昨天
TEST3

7 月 28 日
test2
test1

我很感激这方面的任何帮助。谢谢!;-)

Zna*_*kus 5

您可以使用DATE(FROM_UNIXTIME(time)). 这将输出类似2010-07-30.

以下应按日期分组。

SELECT id, subject, time, DATE(FROM_UNIXTIME(time)) AS date_column
GROUP BY date_column
Run Code Online (Sandbox Code Playgroud)

编辑:没有正确阅读您的问题。

为此,我将只运行标准SELECT和ORDER BY time DESC.

然后用PHP进行分组。

$lastDate = null;

foreach ($rows as $row) {
    $date = date('Y-m-d', $row['time']);
    $time = date('H:i', $row['time']);

    if (is_null($lastDate) || $lastDate !== $date) {
        echo "<h2>{$date}</h2>";
    }

    echo "{$time}<br />";

    $lastDate = $date;
}
Run Code Online (Sandbox Code Playgroud)