Mysql 合并具有同样key的行数据 - TOMMYHU - 专注互联网开发及运营技术,提供相关资料及软件下载,奇趣网络时事评论!
Jun 11

Mysql 合并具有同样key的行数据 不指定

tommyhu , 06:42 , DBA » MYSQL , Comments(0) , Trackbacks(0) , Reads(2175) , Via Original Large | Medium | Small
Mysql 合并具有同样key的行数据 :GROUP_CONCAT 成组的连接到一起。

我们在组织数据时有时需要将具有相同key值的行的某列值组成一行。
在多对多关系中,例如学生与分数和科目的对应关系。一个学生各门考试成绩存在数据库中,表结构:

stuid    course  score
001      001          76
001      003          82
002      003          96
002      002          88

若需要将同一个学生的所选科目和分数存成 一行导出,则需要使用group_concat字段

>select stuid, group_concat(course),group_concat(score) from stu_course;

结果:001     001,003   76,82
          002     003,002   96,88


group_concat 默认使用"," 作为分割符,这个函数允许用户自己制定分隔符
          group_concat(fileid separator '分隔符');

group_concat也允许对连接的字段排序,可在函数内使用order by字句
     select stuid,group_concat(course order by score desc separator '#'),group_concat(score order by score desc  separator '#') from stu_course;

          001     003#001   82#76
          002     003#002   96#88

▲返回顶部

Add a comment

Nickname

emotemotemotemotemotemotemotemotemotemotemotemotemotemotemotemot