文章详情页
MySQL基于group_concat()函数合并多行数据
浏览:116日期:2023-10-10 13:50:07
一个很有用的函数
group_concat(),手册上说明:该函数返回带有来自一个组的连接的非NULL值的字符串结果。
通俗点理解,其实是这样的:group_concat()会计算哪些行属于同一组,将属于同一组的列合并显示出来。要返回哪些列,由函数参数(就是字段名)决定。分组必须有个标准,就是根据group by指定的列进行分组。
合并的字段分隔符默认为逗号,可通过参数separator指定。
比如在student表中,有如下5条数据:

有要求如下:“小明”的两行成绩可以放在一行展示,“小红”的两行成绩也放在一行展示!
那么就可以使用
SELECT name,group_concat(subject,score) FROM student group by name;
查询结果如下:

也可以自定义分隔符
SELECT name,group_concat(subject,score separator ’--’) FROM student group by name;
查询结果如下:

如果不使用group by name;会怎么样呢?
SELECT name,group_concat(subject,score) FROM student;
查询结果如下(只展示一行了,跟name属性无关了):

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持好吧啦网。
相关文章:
1. 在Oracle中监控和跟踪索引使用情况2. 启动MYSQL出错 Manager of pid-file quit without updating file.3. Mybatis常见注解有哪些(总结)4. Oracle数据库如何使用exp和imp方式导数据5. sql server 2000关于日期的查询6. 如何用mysqldump进行全量和时间点备份7. 快速解决mysql导出scv文件乱码、蹿行的问题8. MyBatis动态SQL foreach标签实现批量插入的方法示例9. Mybatis 如何批量删除数据的实现示例10. SQL Server 2005 读取xml 文件 突破 varchar 8000 限制
排行榜

网公网安备