MySQL: 在一行中选择多条记录

3
在像这样的查询中:
SELECT * 
FROM `Keywords`
WHERE `Page` = 'food'

我的结果显示如下:
| Page   | Keyword |
--------------------
| food   | Pizza   |
--------------------
| food   | Burger  |
--------------------
| food   | Sushi   |
--------------------

我该如何编写SQL语句,才能得到像这样的结果:

| Page | Keyword              |
-------------------------------
| food | Pizza, Burger, Sushi |
-------------------------------
2个回答

9
使用 GROUP_CONCAT 函数。
SELECT `Page`, GROUP_CONCAT(`Keyword` SEPARATOR ', ') AS 'foods'
FROM `Keywords` 
WHERE `Page` = 'food'
GROUP BY `Page`;

虽然您需要在 GROUP_CONCAT 后指定列名,否则列名将成为函数定义。 - Anthony Forloney

4

抱歉我不是要编辑它,我本来是想编辑我的回答,所以我进行了回滚操作。 - Ende Neu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接