SQL编程:group by合并结果字符串 ---> group_concat函数就能行
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函数就能行的更多相关文章
- SQL点滴3—一个简单的字符串分割函数
原文:SQL点滴3-一个简单的字符串分割函数 偶然在电脑里看到以前保存的这个函数,是将一个单独字符串切分成一组字符串,这里分隔符是英文逗号“,” 遇到其他情况只要稍加修改就好了 CREATE FUN ...
- SQL Server GROUP BY 后 拼接 字符串
原文地址:https://blog.csdn.net/u010673842/article/details/79637618 select ID, ,,'') from class a group b ...
- Sql Server中实现Mysql中的group_concat函数效果
), GuestName) , , '') as CustomerName FROM orderitem oi 以上涉及的两个表是OrderItem和Guest,以属性OrderSN和ItemId连接 ...
- 【SQL】SqlServer中Group By后,字符串合并
参考: 1.SQL查询语句 group by后, 字符串合并 2.sql for xml path用法 #需求: 合并列值 表结构,数据如下: id value ----- ------ aa bb ...
- group_concat() 函数 拼接字符串长度有限制
最近,在做一个行转列的存储过程,遇到一个问题,问题如下: 我用group_concat()函数 来整合一个月每天的操作量,并将每天的操作量用CONCAT()函数拼接成 “MAX(IF(t.a = '2 ...
- SQL注入的字符串连接函数
在select数据时,我们往往需要将数据进行连接后进行回显.很多的时候想将多个数据或者多行数据进行输出的时候,需要使用字符串连接函数.在sqli中,常见的字符串连接函数有concat(),group_ ...
- ORACLE PL/SQL编程详解
ORACLE PL/SQL编程详解 编程详解 SQL语言只是访问.操作数据库的语言,并不是一种具有流程控制的程序设计语言,而只有程序设计语言才能用于应用软件的开发.PL /SQL是一种高级数据库程序设 ...
- Sql注入中连接字符串常用函数
在select数据时,我们往往需要将数据进行连接后进行回显.很多的时候想将多个数据或者多行数据进行输出的时候,需要使用字符串连接函数.在sqli中,常见的字符串连接函数有concat(),group_ ...
- sql编程 && 存储过程
sql 结构化查询语言 是一种编程语言 用于管理数据库的编程语言 元素: 数据 数据类型 变量的数据类型 就是字段的数据类型 变 ...
随机推荐
- 黄聪:mysql搬家,直接复制data文件夹(*.MYD,*.MYI,innodb)出错,无法正常显示
解决办法: 1.复制旧mysql的data文件夹中的数据库到新mysql的data文件夹内. 2.删掉旧的“ib_logfile*”等日志文件,重启MySQL后会自动生成新的日志文件的. 3.复制旧的 ...
- Android中如何使用JUnit进行单元测试 eclipse
Android中如何使用JUnit进行单元测试 在我们日常开发android app的时候,需要不断地进行测试,所以使用JUnit测试框架显得格外重要,学会JUnit可以加快应用的开发周期. Andr ...
- 面试总结之Database
什么是数据库事务? 数据库事务_百度百科 https://baike.baidu.com/item/%E6%95%B0%E6%8D%AE%E5%BA%93%E4%BA%8B%E5%8A%A1/9744 ...
- Controlling DNS prefetching
Controlling DNS prefetching IN THIS ARTICLE Background Configuring prefetching in the browser Contro ...
- <转>cocos2d-x学习笔记(五)仿真树叶飘落效果的实现(精灵旋转、翻转、钟摆运动等综合运用)
转载自ufolr的博客 原文连接:http://blog.csdn.net/ufolr/article/details/7624851 最近项目中需要一个落叶的效果,本来想用粒子特效来实现,但是几经调 ...
- Python实现进度条总结
先说一下文本系统的控制符:\r: 将光标移动到当前行的首位而不换行:\n: 将光标移动到下一行,并不移动到首位:\r\n: 将光标移动到下一行首位. 环境:root@ubuntu16: ...
- Java Graphics 2D绘制图片 在Liunx上乱码
绘图的代码工具类 package com.gwzx.framework.captcha; import java.awt.Color; import java.awt.Font; import jav ...
- WebLogic Server StuckThreadMaxTime value is exceeded during configuration
WebLogic Server StuckThreadMaxTime value is exceeded during configuration If you are configuring Web ...
- Hadoop Streaming:aggregate
[Hadoop Streaming:aggregate] 1.实例1 测试文件test.txt mapper程序: 运行: $hadoop streaming -input /app/test.txt ...
- This usually happens because your environment has changed since running `npm install`
此时运行按照提示执行 npm rebuild node-sass 命令,(如若不行,则先运行npm install node-sass命令执行) 然后再运行 node命令,启动服务.