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

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

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

select ordernumber,rolename from frame_role order by ordernumber desc;

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

mySql中将多行数据合并成一行数据(GROUP_CONCAT函数)_第1张图片
1.png

修改过后的SQL语句:

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

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


mySql中将多行数据合并成一行数据(GROUP_CONCAT函数)_第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 语句来进行分组管理,不然所有的数据都会被合并成一条记录

你可能感兴趣的:(mySql中将多行数据合并成一行数据(GROUP_CONCAT函数))