mySql中将多行数据合并成一行数据(GROUP_CONCAT函数)

一个字段可能对应多行数据,用GROUP_CONCAT函数实现多行数据合并成一行,并用指定分隔符进行分割。

例如:角色数据表(frame_role)中的角色排序字段(ordernumber)、角色名称字段(rolename),使用以下SQL进行查询:

select ordernumber,rolename from frame_role order by ordernumber desc;

查询出来的列表为图1所示:

1.png

修改过后的SQL语句:

select ordernumber,group_concat(roleguid separator ';') from frame_role group by ordernumber

查询出来的列表为图2所示:


2.png

如果修改后的SQL语句不进行分组查询,则会合并成一行数据:

select ordernumber,group_concat(roleguid separator ';') from frame_role

查询出来的列表为图3所示:


3.png
GROUP_CONCAT()函数解释
  1. GROUP_CONCAT()中的值为你要合并的数据的字段名;
    SEPARATOR 函数是用来分隔这些要合并的数据的;
    ' '中是你要用哪个符号来分隔;
  2. 必须要用GROUP BY 语句来进行分组管理,不然所有的数据都会被合并成一条记录
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容