当前位置:首页 > 数据库 > MySQL实战笔记—concat以及group_concat的用法(转载)

MySQL实战笔记—concat以及group_concat的用法(转载)

6个月前 (05-24)56

本文中使用的例子均在下面的数据库表tt2下执行:

MySQL实战笔记—concat以及group_concat的用法(转载) _ Java侠

 

一、concat()函数

1、功能:将多个字符串连接成一个字符串。

2、语法:concat(str1, str2,...)

返回结果为连接参数产生的字符串,如果有任何一个参数为null,则返回值为null。

3、举例:

例1:select concat (id, name, score) as info from tt2;

MySQL实战笔记—concat以及group_concat的用法(转载) _ Java侠

中间有一行为null是因为tt2表中有一行的score值为null。

例2:在例1的结果中三个字段id,name,score的组合没有分隔符,我们可以加一个逗号作为分隔符:

MySQL实战笔记—concat以及group_concat的用法(转载) _ Java侠

这样看上去似乎顺眼了许多,但是输入sql语句麻烦了许多,三个字段需要输入两次逗号,如果10个字段,要输入九次逗号...

这种情况,可以使用指定参数之间分隔符的concat_ws()。

 

二、concat_ws()函数

1、功能:和concat()一样,将多个字符串连接成一个字符串,但是可以一次性指定分隔符(concat_ws就是concat with separator)

2、语法:concat_ws(separator, str1, str2, ...)

说明:第一个参数指定分隔符。需要注意的是分隔符不能为null,如果为null,则返回结果为null。

3、举例:

例3:我们使用concat_ws()将 分隔符指定为逗号,达到与例2相同的效果:

MySQL实战笔记—concat以及group_concat的用法(转载) _ Java侠

例4:把分隔符指定为null,结果全部变成了null:

MySQL实战笔记—concat以及group_concat的用法(转载) _ Java侠

 

三、group_concat()函数

前言:在有group by的查询语句中,select指定的字段要么就包含在group by语句的后面,作为分组的依据,要么就包含在聚合函数中。(有关group by的知识请戳:浅析SQL中Group By的使用)。

例5:

MySQL实战笔记—concat以及group_concat的用法(转载) _ Java侠

该例查询了name相同的的人中最小的id。如果我们要查询name相同的人的所有的id呢?

当然我们可以这样查询:

例6:

MySQL实战笔记—concat以及group_concat的用法(转载) _ Java侠

但是这样同一个名字出现多次,看上去非常不直观。有没有更直观的方法,既让每个名字都只出现一次,又能够显示所有的名字相同的人的id呢?——使用group_concat()

1、功能:将group by产生的同一个分组中的值连接起来,返回一个字符串结果。

2、语法:group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator '分隔符'] )

说明:通过使用distinct可以排除重复值;如果希望对结果中的值进行排序,可以使用order by子句;separator是一个字符串值,缺省为一个逗号。

3、举例:

例7:使用group_concat()和group by显示相同名字的人的id号:

MySQL实战笔记—concat以及group_concat的用法(转载) _ Java侠

例8:将上面的id号从大到小排序,且用'_'作为分隔符:

MySQL实战笔记—concat以及group_concat的用法(转载) _ Java侠

例9:上面的查询中显示了以name分组的每组中所有的id。接下来我们要查询以name分组的所有组的id和score:

MySQL实战笔记—concat以及group_concat的用法(转载) _ Java侠
 
 
 
 
 
转载自:

作者:大象踢足球
来源链接:https://www.cnblogs.com/Jason-Xiang/p/10441498.html

标签: MySQL

“MySQL实战笔记—concat以及group_concat的用法(转载)” 的相关文章

MySQL:互联网公司常用分库分表方案汇总!

MySQL:互联网公司常用分库分表方案汇总!

互联网公司对MySQL的优化,常用分库分表方案汇总 转自:https://zhuanlan.zhihu.com/p/137368446 一、数据库瓶颈...

mysql详细安装教程以及1067错误代码解决方案

mysql详细安装教程以及1067错误代码解决方案

目录 mysql安装教程以及1067错误代码解决方案 下载mysql 配置mysql 配置...

mysql查询IP地址

由于前期设计问题,在保存ip地址时,没有存为整型,而是存成了字符串形式,在查询ip的范围区间时,遇到这样的问题: select ip from t_ip where ip...

Mysql查询去重语句

1、distinct select count(distinct CName) from Course select count(CName) from (select...

Mysql分库分表工具ShardingSphere

Mysql分库分表工具ShardingSphere

ShardingSphere是一款起源于当当网内部的应用框架。2015年在当当网内部诞生,最初就叫ShardingJDBC。2016年的时候,由其中...

MySQL如何查询表中重复的数据

文章目录 一、查询重复记录 二、总结 一、查询重复记录 例:查询员工...

mysql查询各班最高分学生的信息

mysql查询各班最高分学生的信息

学生表student 班级表class 课程表subject 成绩表score  一、查询各班最高分学生的信...

mysql数据库的简单操作-2(单表查询)

查询数据SELECT 一 单表查询的语法 #查询数据的本质:mysql会到你本地的硬盘上找到对应的文件,然后打开文件,按照你的查询条件来找出你需要的数据。下面是完整...

使用淘宝中间件cobar实现mysql分库分表

cobar 编译安装配置笔记 https://github.com/alibaba/cobar windows下使用eclipse导入cobar项目,ecli...

mysql 分库分表框架

前文说了为什么进行数据库的分库分表操作《数据库为什么分库分表?mysql的分库分表方案》,本文主要分享mysql的数据库架构 简单的MySQL主从复制...