如何解决MySQL或PHP?按字段数据分组结果
这将是我的解决方案,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数据库:
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
--------------------------------
¿这甚至可能吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。