MySQL(或PHP?)按字段数据分组结果

我有一个看起来与此类似的MySQL数据库:

ID    Group   Name

1 1 John

2 1 Andrea

3 1 Jack

4 2 Mike

5 2 Kurt

6 3 Alice

我需要在html表中对结果进行排序,如下所示:

Group       Name

-----------------------

1 John

Andrea

Jack

-----------------------

2 Mike

Kurt

-----------------------

3 Alice

-----------------------

我不知道这是否应该通过SQL查询(concat_group或类似的东西)或PHP完成,有人可以帮帮我吗?

伙计们,感谢您的以下帮助,但我还需要完成类似的工作,例如:

ID    meta_key  meta_value   name

1 group 1 John

2 group 1 Andrea

3 group 1 Jack

4 group 2 Mike

5 group 2 Kurt

6 group 3 Alice

我需要对上面的示例进行排序/显示,如下所示:

group       name

-----------------------

1 John

Andrea

Jack

-----------------------

2 Mike

Kurt

-----------------------

3 Alice

-----------------------

现在,我的问题有了新的维度。我的数据库如下所示:

b.ID    b.meta_key  b.meta_value   a.title

1 group 1 Title 1

2 group 1 Title 2

3 group 1 Title 3

4 group 2 Title 4

5 group 2 Title 5

6 group 3 Title 6

7 coef 6 Title 1

8 coef 4 Title 2

9 coef 12 Title 3

9 coef 2 Title 4

9 coef 3 Title 5

9 coef 7 Title 6

(我正在使用表)

我需要实现:

group       title         coef

---------------------------------

1 Title 1 6

Title 2 2

Title 3 12

--------------------------------

2 Title 4 2

Title 5 3

--------------------------------

3 Title 6 7

--------------------------------

¿这甚至可能吗?

回答:

这将是我的解决方案,althoug一点都不优雅

<?php

$dbc = new MySQLI(DBHOST,DBUSER,DBPASS,DB);

$result = $dbc->query("

SELECT

p.Group as 'group',

GROUP_CONCAT(name) as names

FROM prueba p

GROUP BY p.Group

");

?>

<table>

<tr>

<th>Group</th>

<th>Name</th>

</tr>

<?php while($row = $result->fetch_assoc()){

$names = split(",",$row["names"]);

?>

<tr>

<td><?php echo $row["group"] ?> </td>

<td><?php echo $names[0]; array_shift($names) ?></td>

</tr>

<?php foreach( $names as $name){ ?>

<tr>

<td></td>

<td><?php echo $name ?></td>

</tr>

<?php } ?>

<?php } ?>

</table>

以上是 MySQL(或PHP?)按字段数据分组结果 的全部内容, 来源链接: utcz.com/qa/412001.html

回到顶部