在 MySQL 中的 CONCAT 中使用 GROUP_CONCAT
要将多行连接成一个字符串,同时按公共值对它们进行分组,您可以使用GROUP_CONCAT 函数。让我们通过一个实际的例子来探索它的应用。
问题:
给定一个名为 mytbl 的表,其数据如下:
id | Name | Value |
---|---|---|
1 | A | 4 |
1 | A | 5 |
1 | B | 8 |
2 | C | 9 |
如何我们将这些数据转换为以下内容格式:
id | Column |
---|---|
1 | A:4,5,B:8 |
2 | C:9 |
答案:
要实现此目的,您可以使用嵌套的 GROUP_CONCAT 和 CONCAT 的组合函数:
select id, group_concat(`Name` separator ',') as `ColumnName` from ( select id, concat(`Name`, ':', group_concat(`Value` separator ',')) as Name from mytbl group by id, Name ) tbl group by id;
解释:
这种嵌套的 GROUP_CONCAT 和 CONCAT 组合使您能够生成所需的输出,其中每个 id 与逗号分隔的字符串关联名称及其对应的值。
以上是如何在 MySQL 中使用 GROUP_CONCAT 和 CONCAT 将多行连接成单个字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!