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 结构化查询语言 是一种编程语言 用于管理数据库的编程语言 元素: 数据 数据类型 变量的数据类型 就是字段的数据类型 变 ...
随机推荐
- ivy antlib shemalocation
<?xml version="1.0" encoding="UTF-8"?> <project name="yourproject& ...
- SIM800/SIM900/SIM7000/SIM7600底层操作接口_句柄方式完全分离通信底层
使用SIMCOM公司通信模块将底层的通信与应用完全进行了分离,便于移植. SIMCOM.h //定义了相关的结构体与类型. SIMCOM_AT.c//定义了底层的AT接口 SIMCOM_GSM.c// ...
- emacs之配置2,UI基本设置
在-下建立目录emacsConfig,里面建立一些自己写的el脚本,下面是名字随便,我的 emacsConfig/ui-setting.el ;关闭Emacs的默认启动界面 (setq inhibit ...
- java中的变量和常量
也可以先声明后赋值 自动类型转换 1. 目标类型能与源类型兼容,如 double 型兼容 int 型,但是 char 型不能兼容 int 型 2. 目标类型大于源类型,如 double 类型长度 ...
- 前端基础——AJAX
一 简介 AJAX(Asynchronous Javascript And XML),即AJAX = 异步JavaScript + XML.AJAX是一种用于创建快速动态网页的技术. AJAX两大特 ...
- struct to point
关键知识点:结构体--新数据类型定义及结构体变量的定义与初始化, 结构体指针变量的定义及相关应用. 结构体变量作函数参数 指向结构体变量的指针变量. 数组与结构体间的渊源始末, 当一个整体由多个数据构 ...
- leetcode807
class Solution { public: int maxIncreaseKeepingSkyline(vector<vector<int>>& grid) { ...
- Liunx cannot remove `xxx': Operation not permitted
链接: http://mangocool.com/detail_1_1439515930283.html 解到原来文件还可以设置隐藏权限,就是这个chattr设置,下面我们来看看这个命令的详解. [r ...
- 学习IIS & MVC的运行原理 (转)
我一直疑惑于以下问题,从客户端发出一个请求,请求到达服务器端是怎样跟iis衔接起来的,而iis又是怎样读取我发布的代码的,并返回服务器上的文件.这其中是怎样的一个处理过程. 1:当你从浏览器中输入一个 ...
- Linux 入侵检测
一.检查系统日志 检查系统错误登陆日志,统计IP重试次数 # 这里使用了lastb命令,该命令需要root权限,可以显示所有登陆信息.这里仅仅显示的root用户的,读者可以更具实际情况自行确定,或者直 ...