您的位置:首页 > 数据库 > MySQL

Mysql中的几个连接字符串函数用法

2019-07-08 10:12 1021 查看

  最近完成项目的过程中接触到一个关于列转行的问题,因为没什么思路所以上面查了下,大部分都是关于连接字符串函数的,之前也不了解这几个函数,了解后觉得值得记录下来和大家分析一下。
  用来连接字符串的函数:CONCAT、CONCAT_WS、GROUP_CONCAT
  1. CONCAT:就是直接把需要连接的字段给到它,使用方法:CONCAT(str,’,’,str1,…)。执行效果如下:

需要注意的是:使用CONCAT函数连接字符串,只要其中有NULL出现,则将会返回为NULL。如:

  2. CONCAT_WS:是CONCAT的特殊版,使用CONCAT连接字符串是需要自己加分隔符的,但是如果使用CONCAT连接多个字符串就需要在每个字符串之间加分隔符,这样非常麻烦。从而就有了CONCAT_WS的出现,它给我们提供了设置分隔符的参数(Separator),分隔符可以是一个字符串也可以是其他参数,但是不能为NULL,如果分隔符为空那么结果将会返回NULL。而且他会自动忽略任何分隔符参数后的NULL值,为NULL的数据不会进行拼接。使用方法:CONCAT_WS(separator,str,str1,NULL,…)。执行效果如下:

  3. GROUP_CONCAT:看到GROUP应该就能想到分组,没错这个函数就是在CONCAT的基础上进行了分组,我想网上所说的列转行应该就是使用这个函数来实现的。它的使用方法:
GROUP_CONCAT([DISTINCT] str,str1,… [Order BY ASC/DESC 排序字段] [Separator ‘分隔符’])。
[]中的语句代表可选,分隔符不写默认是以逗号分隔。其实使用这个函数就基本没必要去连接多个字符串了,他会按你设置好的分组情况把每组的需要连接的字符串连接起来,查询效果跟列转行差不多。执行效果如下:
先看看基本查询的数据:

  然后是GROUP_CONCAT后的数据:

注意:一定要进行分组,否则只会出现一条数据,连接的结果是所有数据的要连接的字段数据都连接到了一起。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: