我如何在mysql表中分组记录?

时间:2016-04-14 06:57:37

标签: php html mysql

我在MySQL中有一个包含group_idname列的表(该表有多个用户使用group_id分组。)。

table design and data

我想使用名称分组在html表中显示这些用户。

grouping of names

我使用了以下MySQL查询,但它没有完成这项工作。

SELECT 
    * 
FROM `teams` 
WHERE 1
GROUP BY 
    group_id

如何使用PHP和MySQL获取输出?

4 个答案:

答案 0 :(得分:0)

您应该使用group_concat作为查询

SELECT group_id, GROUP_CONCAT(name)
from teams 
group by group_id;

答案 1 :(得分:0)

使用GROUP_CONCAT()功能:

SELECT
    group_id,
    GROUP_CONCAT(`name`) AS teams
FROM
    teams
GROUP BY
    group_id

答案 2 :(得分:0)

尝试以下SQL查询

csv.DictReader

答案 3 :(得分:0)

在上面的例子中使用GROUP_CONCAT(name)并且你得到了你的查询时,你可以在php中执行以下操作来循环搜索结果。

  

选择   的 GROUP_ID 下,    group_concat(名称)AS 团队 FROM    your_table GROUP BY   的 GROUP_ID

$html = [];
foreach ($results as $row) {
    $html []= "<div>";
        $html []= "GROUP ID:" . $row['group_id'];
        $html []= "TEAM:" . $row['team'];
    $html []= "</div>";
}
echo join("", $html);

注意: 我在这里使用的是 $ html 数组,因为它可以更大的内存效率来大规模使用数组字符串连接比使用。= 字符串运算符。