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)

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

mysql去重合并字符串,SQL编程:group by合并结果字符串 --- group_concat函数就能行...相关推荐

  1. mysql异常关闭7034,SQL ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数

    SQL NULL 函数 SQL ISNULL().NVL().IFNULL() 和 COALESCE() 函数 请看下面的 "Products" 表: P_Id ProductNa ...

  2. (小甲鱼字符串I编程)1.一个英文字符串,去掉相邻的大写小写如Aa,输出这个字符串 2.字符串按如下存放:它的偶数下标为小写英文字母奇数下标为正整数编写代码将奇数下标的数字转换为上一个字母偏移后的字母

    一.请按照以下规则整理一个给定的字符串 s. 一个整理好的字符串中,两个相邻字符 s[j] 和 s[j+1],其中 0 <= j <= s.length - 2,要满足如下条件: · 若 ...

  3. mysql去重后的count_MYSQL用group by去重后,再用count计算条数

    我就废话不多说了,大家还是直接看代码吧~create or replace function aa1(a1 integer[],a2 bigint) returns void AS $$declare ...

  4. mysql去重查询group_MySQL distinct 与 group by 去重(where/having)

    MySQL中常用去重复数据的方法是使用 distinct  或者 group by ,以上2种均能实现,但2者也有不同的地方. distinct 特点: 如:select distinct name, ...

  5. SQL Exists ⚡️Group by ⚡️Case when ⚡️Having ⚡️常用函数

    EXISTS用法 tablea aid aNAME 1 A1 2 A2 3 A3tableb bID AID bNAME 1 1 B1 2 2 B2 3 2 B3 这是俩张表- select * fr ...

  6. mysql去重取最大值,逻辑类似oracle的over(partition by)函数

    像下表一样的数据,有重复的合同号,但是我只想保留同一合同号中回款金额最大的那一行,也就是图中红框里的数据. oracle方法: 在oracle中,我们可以简单地用over(partition by)函 ...

  7. SQL编程:模糊表关联不求人 --- concat + like就能行

    1.表的结构:​ create table A(proj_dept varchar(30));create table B(dept_id int,dept_name varchar(30));ins ...

  8. mysql数字辅助表_关于数字的经典SQL编程问题:数字辅助表

    [IT168 技术]数字辅助表是一个只包含从1到N的N个整数的简单表,N通常很大.因为数字辅助表是一个非常强大的工具,可能经常需要在解决方案中用到它,笔者建议创建一个持久的数字辅助表,并根据需要填充一 ...

  9. mysql group concat 去重,MySQL group_concat() 函数用法

    MySQL group_concat() 函数用法 在使用 group by对数据进行分组后,如果需要对 select 的数据项进行字符串拼接,这时就需要用到group_concat()函数. 1.基 ...

最新文章

  1. python元素定位id和name_Python+Selenium自动化软件测试实战:Xpath,class,id,name定位和Iframe框架跳转...
  2. 通往奥格瑞玛的道路(洛谷 1462)
  3. JavaScript实现isPowerOfTwo算法(附完整源码)
  4. Java小数中的四舍五入
  5. 重庆考区非计算机专业二级等级考试vf上机题怎么建立程序文件?,计算机等级考试一级上机试题...
  6. GO语言中的几个关键思想
  7. Unity AssetBundle 爬坑手记
  8. bzoj 1119 [POI2009] SLO bzoj 1697 牛排序 —— 置换+贪心
  9. 3des 解密 java_◆JAVA加密解密-3DES
  10. 在Ubuntu 20.04(Linux Mint 各衍生版)上安装使用国金证券 通达信 客户端软件。
  11. 电商自营藏猫腻 苏宁国美京东的套路谁最深?
  12. 基于python对B站缓存视频的批量复制,重命名
  13. 内网穿透NPS及NPC搭建(使用docker实现)
  14. 文化网,武汉文化网,湖北文化网——炎黄文化常识
  15. ORA-12514 错误的处理
  16. Navicat提示Access violation at address ... in module ‘navicat.exe‘.Write of address ...
  17. 如何学习Photoshop
  18. switch语言的应用
  19. uni-app中使用HTML5 Plus
  20. Java开发环境及其特点

热门文章

  1. Plyr – 简单,灵活的 HTML5 媒体播放器
  2. Centos 7安装Postfix用于发送提醒邮件
  3. 如何为云部署安全开源代码?
  4. H5前端框架推荐合集 (转)
  5. python startswith
  6. java输出一个Int数据的补码
  7. linux常用系统命令
  8. Java、Scala和Go语言多线程并发对比测试
  9. *** 隧道和加密技术知识要点
  10. 启用ISA Server的缓存