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. yii2 memcache 跨平台交互 键和值不一样

    1 首先在配置文件中加载 web\basic\config\web.php ........ 'components' => [ 'request' => [ // !!! insert ...

  2. Bootstrap-Other:CSS编码规范

    ylbtech-Bootstrap-Other:CSS编码规范 1.返回顶部 1. Bootstrap CSS编码规范 语法 用两个空格来代替制表符(tab) -- 这是唯一能保证在所有环境下获得一致 ...

  3. Java之dom4j的简单解析和生成xml的应用

    一.dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的.dom4j是一个十分优秀的JavaXML API,具有性能优异.功能强大和极其易使用的特点,它的性能超过sun公 ...

  4. [转]oracle 12c 中的分页子句

    转自:http://blog.itpub.net/271063/viewspace-1061279/ -- 连接数据库 创建测试用户-- Connected to Oracle Database 12 ...

  5. 详解Oracle的几种分页查询语句

    转载自:http://database.51cto.com/art/200904/118737.htm 分页查询格式: SELECT * FROM (SELECT A.*, ROWNUM RN FRO ...

  6. 停止调试 IIS 不退出

    在VS主面板打开:工具->选项->调试->编辑继续   取消选中[启用"编辑并继续"] 就可以(不过这是针对所有的调试). 若只想对单个项目进行设置,可以选择自己 ...

  7. [Windows报错]要求的函数不受支持、这可能是由于 CredSSP 加密 Oracle 修正

    版本说明: 服务器版本:Windows Server 2008 R2 SP1(虚机) 客户端版本:Windows 10 家庭版   问题描述: 使用Windows远程桌面连接时弹出如下描述的错误,如图 ...

  8. java 工具类 static

    http://wenwen.sogou.com/z/q526955586.htm 工具类其实就是提供了一些公共的函数,方便其他类去调用,函数都写成static一方面是因为方便,另一方面是工具类的函数是 ...

  9. Eclipse使用技巧汇总

    Eclipse中设置作者日期等Java注释模板 参考网址:https://jingyan.baidu.com/article/1612d500856cb1e20e1eeed5.html

  10. PHP图片加水印文字及图片合成缩放

    <?php //图片添加文字水印 /*$bigImgPath = 'background.png'; $img = imagecreatefromstring(file_get_contents ...