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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C语言中三目运算符_c语言中的单目运算符

    C语言中三目运算符_c语言中的单目运算符三目运算符三目运算符:也叫三元运算符。这个运算符的符号是:?:语法:表达式1?表达式2:表达式3;语义:先执行表达式1,执行完毕,表达式1的结果如果为真,那么执行表达式2,并且这

    2022年8月2日
    5
  • matlab的imread怎么用_imread函数参数的含义

    matlab的imread怎么用_imread函数参数的含义imread(matlab)                                            函数语法 A = imread(filename, fmt)[X, map] = imread(…)[…] = imread(filename)[…] = imread(URL,…)[…] = imread(

    2022年10月14日
    3
  • 轻松矿工eth双挖教程_以太坊双挖

    轻松矿工eth双挖教程_以太坊双挖转载:http://www.itdaan.com/blog/2017/08/18/39e9b08528fb1880131378eb625a8790.html无意中发现一款以太坊挖矿神器-ETH超级矿工,支持ETH,ETC+SC等各种双挖(11.7内核)激活成功教程抽水小编无意中发现一款以太坊挖矿神器-ETH超级矿工。这款ETH挖矿软件支持ETH,ETC+SC双挖,经分析内核采用Claymore’s…

    2022年10月15日
    2
  • centos7安装vsftp配置虚拟用户「建议收藏」

    centos7安装vsftp配置虚拟用户「建议收藏」安装前的准备关闭防火墙或者开端口权限。一般是firewalld或者iptables。systemctlstopfirewalldsystemctldisablefirewalld关闭sellinux立即关闭setenforce0重启也关闭vi/etc/selinux/config修改SELINUX=disabled查看是否关闭get

    2022年9月25日
    3
  • JavaScript数组_java数组排序

    JavaScript数组_java数组排序JavaScript数组常用方法(最全)今天我们对JavaScript的数组以及对象的方法做一个总结,方便与以后的开发与查询,多多收藏哦!1.push()push方法可以向数组的末尾添加一个或者多个元素,并返回新的长度.2.pop()pop()方法用于删除并返回数组的最后一个元素。3.unshift()unshift()方法可向数组的开头添加一个或更多元素,并返回新的长度。4.shift()shift()方法用于把数组的第一个元素从其中删除,并返回第一

    2025年7月17日
    4
  • 语音合成技术_ai语音合成软件免费的

    语音合成技术_ai语音合成软件免费的语音合成技术原理语音合成(texttospeech),简称TTS。将文字转化为语音的一种技术,类似于人类的嘴巴,通过不同的音色说出想表达的内容。将计算机自己产生的、或外部输入的文字信息转变为可以听得懂的、流利的汉语口语输出的技术。TTS的基本组成:(1)文本分析对输入文本进行语言学分析(主要模拟人对自然语言的理解过程),逐句进行词汇的、语法的和语义的分析,以确定句子的低层结构和每个字的音素的组成,包括文本的断句、字词切分、多音字的处理、数字的处理、缩略语的处理等。使计算机对输入的文本能完全理解,

    2025年8月24日
    1

发表回复

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

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