你在找这个吗?
SELECT comp,
GROUP_CONCAT(CONCAT(TeamA, '|', TeamB)) details
FROM table1
GROUP BY comp
输出:
+----------------------------+---------- ----------------------------------+
| 补偿 | 详情 |
+----------------------------+---------- ----------------------------------+
| 非洲世界杯 - 资格赛 | 肯尼亚|纳米比亚,津巴布韦|莫桑比克|
| 英格兰 - 甲级联赛 | 考文垂|科尔切斯特联|
| 爱尔兰联赛 - 超级联赛 | 布雷流浪者|UCD,邓多克|德罗赫达联|
+----------------------------+---------- ----------------------------------+
这是SQLFiddle演示
如果需要,您可以分别更改逗号CONCAT()
和管道的分隔符。在迭代结果集时,您可以轻松地详细说明值。GROUP_CONCAT()
,
|
explode()
使用 PDO 的简化 php 部分可能如下所示
$db = new PDO('mysql:host=localhost;dbname=test', 'user', 'userpwd');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$sql = "SELECT comp,
GROUP_CONCAT(CONCAT(TeamA, '|', TeamB)) details
FROM table1
GROUP BY comp";
$query = $db->prepare($sql);
$query->execute();
$rows = $query->fetchall(PDO::FETCH_ASSOC);
$query = null;
$db = null;
foreach($rows as $row) {
echo $row['comp'] . '</br>';
$details = explode(',', $row['details']);
foreach($details as $detail) {
list($teama, $teamb) = explode('|', $detail);
echo $teama . ' - ' .$teamb . '</br>';
}
echo '</br>';
}
输出:
非洲世界杯 - 资格赛
肯尼亚 - 纳米比亚
津巴布韦 - 莫桑比克
英格兰 - 甲级联赛
考文垂 - 科尔切斯特联
爱尔兰联赛 - 超级联赛
布雷流浪者 - UCD
邓多克 - 德罗赫达联