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

一、concat()函数

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

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

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

3、举例:

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

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

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

这样看上去似乎顺眼了许多~~

但是输入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相同的效果:

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

三、group_concat()函数

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

例5:

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

当然我们可以这样查询:

例6:

但是这样同一个名字出现多次,看上去非常不直观。有没有更直观的方法,既让每个名字都只出现一次,又能够显示所有的名字相同的人的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号:

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

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

作者:NemoWangCN

mysql group_concat null_MySQL教程之concat以及group_concat的用法相关推荐

  1. MySQL教程之concat以及group_concat的用法

    本文中使用的例子均在下面的数据库表tt2下执行: 一.concat()函数 1.功能:将多个字符串连接成一个字符串. 2.语法:concat(str1, str2,...) 返回结果为连接参数产生的字 ...

  2. 回顾Mysql中聚合函数之concat和GROUP_CONCAT

    一 概述 在我们查询数据的时候经常会有单行数据多字段和多行数据同一个字段的拼接操作,此时我们就可以分别通过concat和GROUP_CONCAT来实现. 二 具体实现 单行数据多字段拼接 select ...

  3. MySQL流浪记(六)—— CONCAT到GROUP_CONCAT的沿途风景(图文详解)

    本文中的案例如下,可以自己测试一下,有问题可以留言哦. CREATE TABLE staff (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50),j ...

  4. MYSQL教程之 concat

    concat函数():将多个字符串连接成一个字符串 连接的字符串里有一个值为空,就返回空 eg:select id,concat(username,password) as info from t1 ...

  5. ef mysql dbfirst,.NetCore教程之 EFCore連接Mysql DBFirst模式

    一:創建EF的類庫,同時將此項目設置為啟動項(為Scaffold-DbContext -tables指令使用),同時安裝2個包 ①Microsoft.EntityFrameworkCore.Tools ...

  6. ef mysql dbfirst_.NetCore教程之 EFCore连接Mysql DBFirst模式

    一:创建ef的类库,同时将此项目设置为启动项(为scaffold-dbcontext -tables指令使用),同时安装2个包 ①microsoft.entityframeworkcore.tools ...

  7. mysql 错误 150_MySQL教程之error 150错误提示解决办法

    像这种不能创建一个.frm文件的报错好像暗示着操作系统的文件的权限错误或者其它原因,但实际上,这些都不是的,事实上,这个mysql报错已经被报告是一个mysql本身的bug并出现在mysql开发者列表 ...

  8. python使用格式化教程_软件测试教程之python格式化输出format用法

    format用法: format()功能很强大,它把字符串当成一个模板,通过传入的参数进行格式化,并且使用大括号'{}'作为特殊字符代替'%'. 使用方法由两种:b.format(a)和format( ...

  9. 浅析MySQL中concat以及group_concat的使用

    吃水不忘挖井人系列 原帖地址: 浅析MySQL中concat以及group_concat的使用 说明: 本文中使用的例子均在下面的数据库表tt2下执行: 一.concat()函数 1.功能:将多个字符 ...

最新文章

  1. 微服务慌了!看看人家这分布式事务搞得,就是不一样
  2. 02 Java程序员面试宝典视频课程之异常
  3. 博士申请 | 阿联酋阿布扎比人工智能大学许志强老师招收全奖博士/硕士
  4. 单点登录(SSO)—简介 1
  5. 项目中常用正则(手机号、身份证、金额等)
  6. WordPress忘记密码的5种解决方法
  7. ug许可服务器在那个文件里,ug许可证位置在哪_ug许可证文件在哪的图文步骤
  8. [转]DES加密 java与.net可以相互加密解密两种方法
  9. IDEA安装“Translation”插件
  10. 剑指offer 29 多于一半的数
  11. 【C语言】游戏管理系统简单设计
  12. APP色彩搭配方案是由主色、辅助色和点缀色构成
  13. java集合优秀率怎么算,优秀率怎么算(及格率和优秀率公式)
  14. C语言学习:合数和质数的判断
  15. 别套模板了 这款宝藏AE插件一键解决画面排版
  16. Linux 下 github 的使用
  17. keil c语言 1602时钟代码,基于单片机的LCD1602电子时钟设计.doc
  18. HTML5终极备忘大全(图片版+文字版)
  19. CentOS7安装与克隆
  20. PHP使用Switch语句判断星座,PHP根据日期判断星座的函数

热门文章

  1. php调用好单库api视频教程,[8.1]-PhalApi视频教程 | PhalApi(π框架) - PHP轻量级开源接口框架 - 接口,从简单开始!...
  2. java 面向对象 重载_Java方法重载
  3. mysql滴的一声就关了_关于mysql数据库在输入密码后,滴的一声直接退出界面的解决办法(详细办法)...
  4. 中山电子科技大学计算机学院分数线,电子科技大学中山学院
  5. android命令行 gles,Android利用OpenGLES绘制天空盒实例教程
  6. nginx 在阿里云怎么安装mysql_在阿里云 CentOS 服务器(ECS)上搭建 nginx + mysql + php-fpm 环境...
  7. python更新版本会丢失库吗_Python小技巧:如何批量更新已安装的库?
  8. .net core 部署在Linux系统上运行的环境搭建
  9. linux文件夹不能修改权限
  10. 设置Mysql5.6允许外网访问详细流程