玖叶教程网

前端编程开发入门

Mysql数据查询之字符串拼接函数详解

Mysql字符拼接

在项目中使用(My)Sql进行数据查询时,经常会用到字符串数据的拼接处理,下面就对几个常用的有关字符串拼接的函数在此进行记录说明。

1. 使用CONCAT函数连接字符串

CONCAT函数是用来连接两个字符串形成一个字符串,是最常用的一种形式,参数为不定参数,可以传入多个(不定长度)的参数,但在使用时需要注意一下几点:

  • 如果参数中有一个为NULL ,则返回结果为 NULL,不会过滤NULL值;

  • 如果参数中有一个为二进制字符串(BLOB),则返回结果为二进制字符串。

2. 使用CONCAT_WS函数设置分隔符连接字符串

CONCAT_WS即CONCAT With Separator,它是CONCAT函数的一种特殊形式,其参数也是不定长度的参数,第一个参数为分隔符,用来连接后面参数。分隔符可以是一个字符串,也可以是其它参数。其参数也是不定长度的参数,第一个参数为分隔符,用来连接后面参数。分隔符可以是一个字符串,也可以是其它参数。在使用时也需要注意一下几点:

  • 如果分隔符为NULL,则拼接后的结果也为NULL;

  • 除分隔符外,其他参数如果为NULL则会过滤掉此值,此点和CONCAT有所不同;

  • 不会过滤空字符串,会将空字符串一起拼接到最终结果;

  • 如果参数中有一个为二进制字符串(BLOB),则返回结果为二进制字符串。

3. 使用GROUP_CONCAT函数进行多条记录分组拼接字符串

通过名称即可看出该函数是通过分组拼接字符串,最终结果由分组中的值连接组合而成,其语法结果如下所示:

GROUP_CONCAT(

[DISTINCT] expr [,expr ...]

[ORDER BY {col_name} [ASC | DESC] [,col ...]]

[SEPARATOR str_val] )

其中DISTINCT标识是否去除重复值,为可选参数;expr为要拼接的字符串,可指定多个值;ORDER BY为排序规则,可指定多字段进行排序;SEPARATOR为拼接分隔符,默认为“,”。使用该函数也要注意一下几点:

  • SEPARATOR分隔符不可为NULL;

  • 除分隔符外,如果字段结果为NULL则会过滤掉此值;

  • 除分隔符外,如果字段结果为空字符串,则也会过滤掉此值;

  • 结果长度默认为1024,可通过“SHOW VARIABLES LIKE "%group_concat_max_len%"”来查看,不建议使用该函数查询过多的值,当然你也可以修改该长度的大小。

使用示例:

SELECT GROUP_CONCAT(DISTINCT code ORDER BY code ASC SEPARATOR '-')

FROM tb_disc WHERE id in (1,2,3)

END

关于Mysql中字符串拼接的相关函数接介绍到这,如果不足之处欢迎指正交流,对你有帮助的话记得关注支持~

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言