Sql显示结果在一行,而不是重复


Sql display results in 1 row instead repeating

你好,我有一个这样的表

Name  | Date       | Email
------+------------+------
Dima  | 2013-04-01 | email@yahoo.com
Dima  | 2013-07-03 | email@yahoo.com
Dima  | 2013-03-06 | email@yahoo.com
Andrei| 2013-01-28 | testemail@yahoo.com
Andrei| 2013-01-12 | testemail@yahoo.com
echo'<table>';
$stmt = $dbh->prepare("SELECT * FROM Users"); 
$stmt->execute();
while ($row = $stmt->fetch())
            {   
$name=$row['Name'];
$date=$row['Date'];
$email=$row['Email'];
<tr>
<td>'.$name.'</td>
<td>'.$date.'</td>
<td>'.$email.'</td>
</tr>
            }
echo'</table>';

这个查询将显示我确切的表从数据库,我想要的是显示所有的信息有关的Dima,例如到一行

Dima ' 2013-04-01、2013-07-03、2013-03-06 ' email@yahoo.com

您可以使用GROUP_CONCAT

SELECT Name, GROUP_CONCAT(Date) Date, Email
FROM TableName
GROUP BY Name, Email

在mysql中使用GROUP_CONCAT你可以这样做,
这将把所有日期按名称电子邮件分组到一个列组中

select name,email,GROUP_CONCAT(date) date from users group by name, email

GROUP_CONCAT函数将一个组中的字符串连接成一个具有各种选项的字符串。

下面举例说明GROUP_CONCAT函数:

123.GROUP_CONCAT(不同的表达式ORDER BY {column_name | usinged_integer | expression}分离器);9月