我不确定如何为标题说出问题,但这就是我要做的事情。我有一张桌子:
表1
-----------------------------------
| customer | phone | productid |
-----------------------------------
| John | 123-4567 | P123 |
-----------------------------------
| Bam | 345-6789 | P033 |
-----------------------------------
| John | 123-4567 | P432 |
-----------------------------------
| Gin | 444-1234 | P543 |
-----------------------------------
| Bam | 345-6789 | P320 |
-----------------------------------
| Bam | 345-6789 | P675 |
-----------------------------------
我正试图得到这样的结果:
客户:约翰 电话: 123-4567 产品: P123,P432
客户: Bam 电话: 345-6789 产品: P033,P320,P675
客户:杜松子酒 电话: 444-1234 产品: P543
我不确定是否有一个mysql查询可以让我得到这个结果,但我确实尝试在PHP上做,并且不知道从哪里开始。下面是我目前使用的php代码:
$sql = "SELECT * FROM table1 ORDER BY user";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)) {
echo '</br>Customer: '.$row['customer'].'</br>Phone: '.$row['phone'].'</br>Products: '.$row['productid'].'</br>';
}
我知道我需要在while语句中添加一个代码,“当它是同一个用户时,将productid连接到一个变量”,但我无法将其转换为代码。
希望这是有道理的。提前谢谢!
答案 0 :(得分:2)
您可以使用GROUP_CONCAT
:
SELECT
customer,
phone,
GROUP_CONCAT(productid SEPARATOR ', ') as product_ids
FROM table1
GROUP BY customer