在做查询的时候遇到一个问题,今天分享一下解决方法。

先看一下我想要什么效果。

清单名称类型要点,后面两列为清单步骤(外键表)

但我并不想让主表的内容重复那么多遍,于是 distinct去重、子查询、左右内连接查询 各种试 都达不到效果。

有朋友跟我说了Oracle中的WM_CONCAT() 函数 可以将多数据合并为一列 ,在MySQL中试了下 没有这个函数 就搜了一下

然后这里介绍一下Mysql的多数据合并GROUP_CONCAT()函数

通过使用DISTINCT可以排除重复值;如果希望对结果中的值进行排序,可以使用ORDER BY子句

这里我就用不到排序了,就没有使用。感兴趣的可以自己试下

但是这里发现一个问题,合并后发现他是用逗号隔开的,而我的步骤名称里自己就有逗号句号之类的符号,这该怎么拆分呢?

就用到 SEPARATOR 关键字 它是一个字符串值,缺省为一个逗号。

这里 我们发现我并没有加SEPARATOR关键字,默认就是逗号了。找到原因就好办了,看一下效果

最后附上GROUP_CONCAT()语法

  GROUP_CONCAT([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])

MySQL GROUP_CONCAT()函数 -- 字段合并查询的更多相关文章

  1. mysql GROUP_CONCAT 函数 将相同的键的多个单元格合并到一个单元格

    mysql GROUP_CONCAT 函数 将相同的键的多个单元格合并到一个单元格 MemberID MemberName FruitName -------------- ------------- ...

  2. 教您如何使用MySQL group_concat函数

    MySQL group_concat函数是典型的字符串连接函数,下面就为您介绍MySQL group_concat的语法,希望对您学习MySQL group_concat函数有所帮助. MySQL g ...

  3. Mysql group_concat函数被截断的问题

    mysql group_concat函数被截断的问题   MySQL的 group_concat 函数默认返回1024个字节长度,超过长度的会被截断.最近程序中就遇到这个问题了. 通过如下命令可以查看 ...

  4. mysql: 两个字段合并,字符时间转时间戳,别名字段作为where条件查询

    有字段,a,b: a存的是:2016-10-10 b存的是:10:15:30 mysql将字段合并: concat(a, ' - ', b)  或者 concat(a, ' ', b) 字符时间转时间 ...

  5. Mysql group_concat函数列转行,与行转列

    例一: SELECT num from user 1.使用group_concat函数得到列转行 select group_concat(num) from user 2.使用SUBSTRING_IN ...

  6. mysql—group_concat函数

    MySQL中的group_concat函数的使用方法,比如select group_concat(name) . 完整的语法如下: group_concat([DISTINCT] 要连接的字段 [Or ...

  7. mysql 多个字段合并

    group_concat 函数默认“,”合并 select p.id as patent_id,p.application_no,p.name,p.inventer,group_concat(pi.` ...

  8. mysql group_concat函数是有长度限制的

    在表关联查询中,特别是一对多关系的表查询中,group_concat函数是很有用的一个函数,帮助我们减少对数据库查询的次数,减少服务器的压力. 但是今天使用group_concat函数查询数据库时,发 ...

  9. Mysql多个字段合并成一个返回

    可以使用CONCAT函数进行合并: SELECT CONCAT(IFNULL(t1.CITYNAME,''),IFNULL(t1.AREANAME,''),IFNULL(t1.STREETNAME,' ...

随机推荐

  1. jsp 中include使用问题

    如果在需要在jsp页面做页面包含时 会使用到include 指令 来进行页面包含操作 这里是页面的头部 文件名称是head.jsp <%@ page language="java&qu ...

  2. linux初学者小记(二)

    文件管理 1.文件系统结构元素 文件和目录被组织成一个单根倒置树结构文件系统从根目录下开始,用"/"表示. 1.1文件系统 # 根文件系统(rootfs):root filesys ...

  3. .Net Core自动化部署系列(三):使用GitLab CI/CD 自动部署Api到Docker

    之前写过使用Jenkins实现自动化部署,最近正好没事研究了下GitLab的自动化部署,顺便记录一下. 使用GitLab部署我们需要准备两件事,第一个起码你得有个GitLab,自己搭建或者使用官方的都 ...

  4. js赋值,字典,数据类型和参数传递的简单熟悉

    之所以这样分,原因是布尔类型和整数浮点数在内存里是直接赋值的,而数组实际上数组名指的是这个数组的地址 字符串同样是地址,字典也是. //熟悉赋值 var x=0; console.log(x); va ...

  5. springboot之本地缓存(guava与caffeine)

    1. 场景描述 因项目要使用本地缓存,具体为啥不用redis等,就不讨论,记录下过程,希望能帮到需要的朋友. 2.解决方案 2.1 使用google的guava作为本地缓存 初步的想法是使用googl ...

  6. .NET斗鱼直播弹幕客户端(上)

    现在直播平台由于弹幕的存在,主播与观众可以更轻松地进行互动,非常受年轻群众的欢迎.斗鱼TV就是一款非常流行的直播平台,弹幕更是非常火爆.看到有不少主播接入弹幕语音播报器.弹幕点歌等模块,这都需要首先连 ...

  7. IoC 之加载 Bean:总结

    上文中我们将bean已经加载到了IOC容器中,接下来我们将把IOC加载Bean出来进行代码解析 备注:(有些解释是参考别个博客的相关解释 )一起探讨请加我QQ:1051980588 bean 的初始化 ...

  8. 重载operator new delete函数

    可以重载global的operator new delete 函数,细节如下: MyNewDelete.h #pragma once #include <stdlib.h> #includ ...

  9. Python移动自动化测试面试 ☝☝☝

    Python移动自动化测试面试   ☝☝☝ Python移动自动化测试面试 学习 教程 1.super 是干嘛用的?在 Python2 和 Python3 使用,有什么区别?为什么要使用 super? ...

  10. HTTP中get和post

    HTTP中get和post的区别 GET - 从指定的资源请求数据. POST - 向指定的资源提交要被处理的数据 GET POST 后退/刷新 无害的 数据会被重新提交 书签 可收藏为书签 不可收藏 ...