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

  最近完成项目的过程中接触到一个关于列转行的问题,因为没什么思路所以上面查了下,大部分都是关于连接字符串函数的,之前也不了解这几个函数,了解后觉得值得记录下来和大家分析一下。
  用来连接字符串的函数:CONCAT、CONCAT_WS、GROUP_CONCAT
  1. CONCAT:就是直接把需要连接的字段给到它,使用方法:CONCAT(str,’,’,str1,…)。执行效果如下:
Mysql中的几个连接字符串函数用法_第1张图片
需要注意的是:使用CONCAT函数连接字符串,只要其中有NULL出现,则将会返回为NULL。如:
Mysql中的几个连接字符串函数用法_第2张图片
  2. CONCAT_WS:是CONCAT的特殊版,使用CONCAT连接字符串是需要自己加分隔符的,但是如果使用CONCAT连接多个字符串就需要在每个字符串之间加分隔符,这样非常麻烦。从而就有了CONCAT_WS的出现,它给我们提供了设置分隔符的参数(Separator),分隔符可以是一个字符串也可以是其他参数,但是不能为NULL,如果分隔符为空那么结果将会返回NULL。而且他会自动忽略任何分隔符参数后的NULL值,为NULL的数据不会进行拼接。使用方法:CONCAT_WS(separator,str,str1,NULL,…)。执行效果如下:
Mysql中的几个连接字符串函数用法_第3张图片
  3. GROUP_CONCAT:看到GROUP应该就能想到分组,没错这个函数就是在CONCAT的基础上进行了分组,我想网上所说的列转行应该就是使用这个函数来实现的。它的使用方法:
GROUP_CONCAT([DISTINCT] str,str1,… [Order BY ASC/DESC 排序字段] [Separator ‘分隔符’])。
[]中的语句代表可选,分隔符不写默认是以逗号分隔。其实使用这个函数就基本没必要去连接多个字符串了,他会按你设置好的分组情况把每组的需要连接的字符串连接起来,查询效果跟列转行差不多。执行效果如下:
先看看基本查询的数据:
Mysql中的几个连接字符串函数用法_第4张图片
  然后是GROUP_CONCAT后的数据:
Mysql中的几个连接字符串函数用法_第5张图片
注意:一定要进行分组,否则只会出现一条数据,连接的结果是所有数据的要连接的字段数据都连接到了一起。

你可能感兴趣的:(基础知识小结)