mysql两张表数据合并查询_oracle把多条记录合并成一条

mysql两张表数据合并查询_oracle把多条记录合并成一条MYSQL 单表一对多查询,将多条记录合并成一条记录

大家好,又见面了,我是你们的朋友全栈君。

一、描述:

  在MySQL 5.6环境下,应工作需求:将一个表中多条某个相同字段的其他字段合并(不太会表达,有点绕,直接上图)

    mysql两张表数据合并查询_oracle把多条记录合并成一条

    想要达到的效果:

    mysql两张表数据合并查询_oracle把多条记录合并成一条

    实现SQL语句:

1 SELECT 
2   a.books,
3   GROUP_CONCAT(a.name SEPARATOR '||') AS NAMES,
4   GROUP_CONCAT(a.code SEPARATOR '||') AS codes
5 FROM
6   temp_info a 
7 GROUP BY a.books ;

 二、关键词 GROUP_CONCAT():(返回一个字符串结果,该结果由分组中的值连接组合而成。)

  语法结构:

1 GROUP_CONCAT(
2   [ DISTINCT ] expr [,
3   expr...] [ 
4   ORDER BY { unsigned_integer | col_name | formula } [ ASC | DESC ] [,
5   col...] ] [ SEPARATOR str_val ]
6 )

  要点:

  1、通过使用 DISTINCT 可以排除重复值。

  2、如果希望对结果中的值进行排序,可以使用 ORDER BY 子句。

3、SEPARATOR: 一个字符串值,它被用于插入到结果值中。缺省为一个逗号 (“,”),可以通过指定 SEPARATOR “” 完全地移除这个分隔符。

4、group_concat_max_len:可以设置一个最大的长度。

  语法: 1 SET [SESSION | GLOBAL] group_concat_max_len = unsigned_integer; 

5、如果最大长度被设置,结果值未到达到该长度,则结果值会被增加到这个长度。

6、如果分组的字符过长,可以对系统参数进行设置:SET @@global.group_concat_max_len=40000;

 注意:

  group_concat_max_len在MySQL的配置文件中是有默认值的!最大值为1024,如果要想该函数按需求设置长度,使用:

   1 SET GLOBAL group_concat_max_len=-1; 

  查看group_concat_max_len最大长度:

   1 show variables like ‘group_concat_max_len‘; 

三、使用实例:

  mysql两张表数据合并查询_oracle把多条记录合并成一条

1 SELECT 
2   a.books,
3   GROUP_CONCAT(DISTINCT a.name SEPARATOR '||') AS NAMES,  -- 使用 distinct 去除重复数据、
4   GROUP_CONCAT(a.code ORDER BY a.code DESC SEPARATOR '||') AS codes  -- 使用order by 对数据进行排序 
5 FROM
6 temp_info a
7 GROUP BY a.books ;

  mysql两张表数据合并查询_oracle把多条记录合并成一条

 

转载于:https://www.cnblogs.com/zjoe-life/p/10523071.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106933.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • PyCharm汉化:简单两步搞定!PyCharm怎么设置中文简体,为什么我的pycharm搜不到中文语言包(Chinese ​(Simplified)​ Language Pack)

    PyCharm汉化:简单两步搞定!PyCharm怎么设置中文简体,为什么我的pycharm搜不到中文语言包(Chinese ​(Simplified)​ Language Pack)今天我要给PyCharm汉化,这老是看英文难免眼睛有些不适应,时间长了呢还容易出现眼盲(哈啊哈哈)用户珍贵,时间珍贵,用户的时间最珍贵废话不多说了,直接开车首先,你已经下载并安装好了PyCharm,方法一:打开pycharm点击Edit—>>>Settings然后点击Plugins—>>>Marketplace找到Chinese(simplified)Language,再点击Install就欧克了!如果搜不到呢,像下面这样Nothin

    2022年5月9日
  • javascript refresh page 几种页面刷新的方法[通俗易懂]

    javascript refresh page 几种页面刷新的方法[通俗易懂]javascriptrefreshpage几种页面刷新的方法下面以三个页面分别命名为frame.html、top.html、bottom.html为例来具体说明如何做。frame.html由上(top.html)下(bottom.html)两个页面组成,代码如下:复制代码 代码如下:  frame       

    2022年7月18日
  • 改变QLabel背景颜色

    改变QLabel背景颜色在桌面应用程序开发时,需要显示一些状态信息,例如客户端是否掉线,串口是否打开等,我们可以用一些标志显示给用户,例如如果QLabel显示绿色,表示连接成功,显示黑色表示失败。代码如下:ui.label_Status->clear(); QPalettepalette; palette.setColor(QPalette::Background,Q…

    2022年6月20日
  • mybatis逆向生成java代码_mybatis生成

    mybatis逆向生成java代码_mybatis生成前言有时候,我们创建实体类需要跟数据库表里面的字段对应起来。假如一张表有数百个字段,那么手动去写实体类的话就比较麻烦,而且容易出错。解决方案其实解决这个问题的方式有很多,本文介绍其中一种解决方案,通过mybatis的逆向工程生成实体类。本文使用的数据库是Oracle,MySQL只需要修改jar包以及generator.properties配置即可。可以从公众号【程序员高手之路】回复“逆向工程”获取源码!Step1修改p…

    2022年8月21日
  • Java程序设计(高级及专题)- 类的加载和反射[通俗易懂]

    Java程序设计(高级及专题)- 类的加载和反射[通俗易懂]Java程序设计(高级及专题)- 类的加载和反射

    2022年4月22日
  • git 查看、修改Git用户名和密码_163邮箱用户名可以改吗

    git 查看、修改Git用户名和密码_163邮箱用户名可以改吗用户名和邮箱地址的作用用户名和邮箱地址是本地git客户端的一个变量,不随git库而改变。每次commit都会用用户名和邮箱纪录。github的contributions统计就是按邮箱来统计的。查看用户名和邮箱地址:$gitconfiguser.name$gitconfiguser.email修改用户名和邮箱地址:$gitconfig–globaluser.name”user

    2022年9月7日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号