MySQL 按字段数据对结果进行分组:探索复杂数据操作的解决方案
在本文中,我们深入研究分组和显示的挑战基于特定字段数据的 MySQL 数据库的结果。具体来说,我们的目标是解决数据库类似于以下的场景:
ID Group Name 1 1 John 2 1 Andrea 3 1 Jack 4 2 Mike 5 2 Kurt 6 3 Alice
原始问题:按单个字段分组
最初的要求是以表格格式呈现数据,按“组”字段分组:
Group Name ----------------------- 1 John Andrea Jack ----------------------- 2 Mike Kurt ----------------------- 3 Alice -----------------------
解决方案:
<code class="sql">SELECT p.Group as 'group', GROUP_CONCAT(name) as names FROM prueba p GROUP BY p.Group</code>
<code class="php">$result = $dbc->query(" SELECT p.Group as 'group', GROUP_CONCAT(name) as names FROM prueba p GROUP BY p.Group "); echo "<table border='1'><tr><th>Group</th><th>Name</th></tr>"; while($row = $result->fetch_assoc()){ $names = split(",",$row["names"]); echo "<tr><td rowspan='".count($names)."'>".$row["group"]."</td><td>".$names[0]."</td></tr>"; array_shift($names); foreach($names as $name){ echo "<tr><td> </td><td>".$name."</td></tr>"; } } echo "</table>";</code>
高级问题:按多个字段分组
当我们引入多个字段进行分组以及与每个组关联的附加数据时,问题会变得更加复杂。例如,考虑以下数据库:
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
以上是如何将MySQL结果按多个字段分组并显示关联数据?的详细内容。更多信息请关注PHP中文网其他相关文章!