1、表结构

create table tt(id int,v varchar(30));
     
     
    insert into tt values(1,'a'),(1,'b'),(2,'b'),(2,'c'),(2,'b'),(2,'a'),(3,'a');
     
     
    mysql> select * from tt;
    +------+------+
    | id | v |
    +------+------+
    | 1 | a |
    | 1 | b |
    | 2 | b |
    | 2 | c |
    | 2 | b |
    | 2 | a |
    | 3 | a |
    +------+------+
    7 rows in set (0.05 sec)

2、问题
一般在合并字符串我们可以用concat,但是这个函数主要实现类似字符串相加的目的,而且是同一行中的字符串的合并。
如果现在要实现把不同行的字符串进行合并,要如何实现呢?

3、解决方法:
完全合并

mysql> select group_concat(v) from tt;
    +-----------------+
    | group_concat(v) |
    +-----------------+
    | a,b,b,c,b,a,a |
    +-----------------+
    1 row in set (0.05 sec)

分组合并

mysql> select id,group_concat(v) from tt group by id;
    +------+-----------------+
    | id | group_concat(v) |
    +------+-----------------+
    | 1 | a,b |
    | 2 | b,c,b,a |
    | 3 | a |
    +------+-----------------+
    3 rows in set (0.01 sec)

分组、去重合并

mysql> select id,group_concat(distinct v) from tt group by id;
    +------+--------------------------+
    | id | group_concat(distinct v) |
    +------+--------------------------+
    | 1 | a,b |
    | 2 | b,c,a |
    | 3 | a |
    +------+--------------------------+
    3 rows in set (0.03 sec)

分组、去重、排序合并

mysql> select id,group_concat(distinct v order by v) from tt group by id;
    +------+-------------------------------------+
    | id | group_concat(distinct v order by v) |
    +------+-------------------------------------+
    | 1 | a,b |
    | 2 | a,b,c |
    | 3 | a |
    +------+-------------------------------------+
    3 rows in set (0.00 sec)

自定义连接符

mysql> select id,group_concat(v separator ';') from tt group by id;
    +------+-------------------------------+
    | id | group_concat(v separator ';') |
    +------+-------------------------------+
    | 1 | a;b |
    | 2 | b;c;b;a |
    | 3 | a |
    +------+-------------------------------+
    3 rows in set (0.01 sec)

---------------------

SQL编程:group by合并结果字符串 ---> group_concat函数就能行的更多相关文章

  1. SQL点滴3—一个简单的字符串分割函数

    原文:SQL点滴3-一个简单的字符串分割函数 偶然在电脑里看到以前保存的这个函数,是将一个单独字符串切分成一组字符串,这里分隔符是英文逗号“,”  遇到其他情况只要稍加修改就好了 CREATE FUN ...

  2. SQL Server GROUP BY 后 拼接 字符串

    原文地址:https://blog.csdn.net/u010673842/article/details/79637618 select ID, ,,'') from class a group b ...

  3. Sql Server中实现Mysql中的group_concat函数效果

    ), GuestName) , , '') as CustomerName FROM orderitem oi 以上涉及的两个表是OrderItem和Guest,以属性OrderSN和ItemId连接 ...

  4. 【SQL】SqlServer中Group By后,字符串合并

    参考: 1.SQL查询语句 group by后, 字符串合并 2.sql for xml path用法 #需求: 合并列值 表结构,数据如下: id value ----- ------ aa bb ...

  5. group_concat() 函数 拼接字符串长度有限制

    最近,在做一个行转列的存储过程,遇到一个问题,问题如下: 我用group_concat()函数 来整合一个月每天的操作量,并将每天的操作量用CONCAT()函数拼接成 “MAX(IF(t.a = '2 ...

  6. SQL注入的字符串连接函数

    在select数据时,我们往往需要将数据进行连接后进行回显.很多的时候想将多个数据或者多行数据进行输出的时候,需要使用字符串连接函数.在sqli中,常见的字符串连接函数有concat(),group_ ...

  7. ORACLE PL/SQL编程详解

    ORACLE PL/SQL编程详解 编程详解 SQL语言只是访问.操作数据库的语言,并不是一种具有流程控制的程序设计语言,而只有程序设计语言才能用于应用软件的开发.PL /SQL是一种高级数据库程序设 ...

  8. Sql注入中连接字符串常用函数

    在select数据时,我们往往需要将数据进行连接后进行回显.很多的时候想将多个数据或者多行数据进行输出的时候,需要使用字符串连接函数.在sqli中,常见的字符串连接函数有concat(),group_ ...

  9. sql编程 && 存储过程

    sql  结构化查询语言      是一种编程语言   用于管理数据库的编程语言      元素:     数据      数据类型         变量的数据类型  就是字段的数据类型      变 ...

随机推荐

  1. vmware克隆linux网络配置

    一.配置Linux网络 在安装Linux的时候,一定要保证你的物理网络的IP是手动设置的,要不然会在Linux设置IP连通网络的时候会报network is unreachable 并且怎么也找不到问 ...

  2. 02 - Unit05:加载笔记列表

    加载笔记列表 发送Ajax请求 绑定发送事件 获取参数: bookId 发送请求: /note/list.do 事件绑定 $(function(){ Ajax请求发送-->服务器处理--> ...

  3. 黄聪:C#使用能够foreach对hashtable、List遍历时“集合已修改;可能无法执行枚举操作。”错误

    解决办法:使用for循环,而不是foreach循环 例如: ArrayList akeys=new ArrayList(_transmit_tb.Keys); ;p> -;p--) { _tra ...

  4. Java File文件操作 创建文件\目录,删除文件\目录

    Java手册 java.io 类 File java.lang.Object java.io.File 所有已实现的接口: Serializable, Comparable<File> p ...

  5. PY安装模块

    Python安装失败原因 0环境 , pip版本一般为 7.x , 所以一般需要先升级pip版本 , 也就是执行 ```shellpython -m pip install --upgrade pip ...

  6. Sql Server 2016数据库生成带数据的脚本

    步骤:右键点击对应数据库->任务->生成脚本 在弹出的会话框中选择需要的对象,点击下一步,在设置和编写脚本选项中,点开高级按钮(如图)选择架构和数据点击确定就可以了. 提醒:如果你在数据库 ...

  7. 清除MAC 可清除空间

    一.首先:查到了官方解释 https://support.apple.com/zh-cn/HT202867官方说 在 macOS Sierra 中,当您打开优化 Mac 储存空间时,会显示“可清除”内 ...

  8. 将python源文件打包成exe文件

    pyinstaller 库的使用PyInstaller是一个十分有用的第三方库,它能够在Windows.Linux.Mac OS X 等操作系统下将 Python 源文件打包,通过对源文件打包,Pyt ...

  9. 安装face_recognition

    Ubuntu安装face_recognition需要先安装dlib 1.安装dlib的依赖 sudo apt-get install build-essential cmake sudo apt-ge ...

  10. 25.OGNL与ValueStack(VS)-集合对象进阶

    转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html 首先在LoginAction中增加如下字段并提供相应的get/set方法: ...