按类别对结果进行分组,然后将结果拆分为几天?

时间:2018-03-28 15:43:21

标签: php mysql mysqli

目前使用以下

SELECT category, COUNT(*) as count
FROM
table
GROUP BY category

这是计算每个类别中发布的项目的数量,但我想要做的是为每个类别获取一系列结果,如下所示

Category: FirstCategory:
    Date: 26/03/2019,
    Posts: 156,
    Date: 27/03/2019,
    Posts: 127
Category: SecondCategory:
    Date: 26/03/2019,
    Posts: 122,
    Date: 27/03/2019,
    Posts: 135

这类事可能吗?

1 个答案:

答案 0 :(得分:3)

在SQL中按类别和日期分组。然后按PHP分类结果:

$result = $mysqli->query("
    SELECT category, date, COUNT(*) as count
    FROM `table`
    GROUP BY category, date
");

$data = [];
while ($row = $result->fetch_assoc()) {
    $data[$row['category']][$row['date']] = $row['count'];
}

你会得到一个这样的数组:

[
    'FirstCategory' => [
        '26/03/2019' => 156,
        '27/03/2019' => 127,
    ],
    'SecondCategory' => [
        '26/03/2019' => 122,
        '27/03/2019' => 135,
    ],
]
相关问题