返回顶部
首页 > 资讯 > 数据库 >mysql中的实现字段或字符串拼接的三种方式
  • 528
分享到

mysql中的实现字段或字符串拼接的三种方式

mysql数据库sqlPoweredby金山文档 2023-09-02 06:09:02 528人浏览 薄情痞子
摘要

一、CONCAT函数 concat函数是将多个字段或字符串拼接为一个字符串;但是字符串之间没有任何分隔。 concat函数官方介绍 -- CONCAT函数的语法如下:CONCAT(str1,str2,...) 1.1、拼接非

一、CONCAT函数

concat函数是将多个字段或字符串拼接为一个字符串;但是字符串之间没有任何分隔。

concat函数官方介绍

-- CONCAT函数的语法如下:CONCAT(str1,str2,...)

1.1、拼接非空字段或字符串

SELECT CONCAT(字段1,字段2,字段3,...) from 表名;-- 拼接表字段示例SELECT CONCAT(id,genre,release_year) result from movies;

执行结果如下:

SELECT CONCAT(字符串1,字符串2,字符串3,...) ;-- 拼接字符串示例SELECT CONCAT('张三','李四','王五') result;

执行结果如下:

1.2、拼接空(NULL)字段

如果拼接的字段中有一个为null,则结果为null。

SELECT CONCAT(字符串1,字符串2,字符串3,...) ;-- 拼接含有NULL字符串示例SELECT CONCAT('张三',NULL,'王五') result;

执行结果如下:

二、CONCAT_WS函数

concat_ws函数将多个字段或字符串拼接为一个字符串,且字符串直接可以指定分隔符;

concat_ws函数的官方介绍

-- CONCAT_WS函数的语法如下:CONCAT_WS(separator,str1,str2,...)

2.1、拼接非空字段或字符串

-- 拼接非空字段示例:SELECT CONCAT_WS(' ',id,genre,release_year) result from movies;-- 拼接字符串示例:SELECT CONCAT_WS(' ','张三','李四','王五') result ;

执行结果如下:

2.2、拼接空(NULL)字段

-- 拼接空(NULL)字符串示例:SELECT CONCAT_WS(' ','张三',NULL,'王五') result ;

执行结果如下:

三、GROUP_CONCAT函数

group_concat函数可以将多行字段数据合并为一行;且内容之间可以指定分隔符;

group_concat函数的官方介绍

group_concat函数的官方介绍翻译

-- group_concat函数的语法如下:GROUP_CONCAT([DISTINCT] expr [,expr ...]             [ORDER BY {unsigned_integer | col_name | expr}                 [ASC | DESC] [,col_name ...]]             [SEPARATOR str_val]             [LIMIT {[offset,] row_count | row_count OFFSET offset}])

3.1、默认以逗号分隔符连接

-- 默认的逗号分隔SELECT GROUP_CONCAT(字段名) from 表名;-- 默认逗号分隔示例:SELECT GROUP_CONCAT(genre) from movies;

执行结果如下:

3.2、可自定义对字段去重排序和指定分隔符

3.2.1、自定义分隔符

-- 自定义字符串分隔符SELECT GROUP_CONCAT(字段名 SEPARATOR '分隔符号') from 表名;-- 示例:SELECT GROUP_CONCAT(genre SEPARATOR ';') from movies;

3.2.2、将整数转为字符串

--将整数字段转为字符SELECT GROUP_CONCAT(CAST(字段名 as CHAR) SEPARATOR '分隔符号') from 表名;-- 示例SELECT GROUP_CONCAT(CAST(id as CHAR) SEPARATOR ';') from movies;

执行结果如下:

3.2.3、多字段拼接

-- 多字段拼接SELECT GROUP_CONCAT(字段1,字段2,字段3 SEPARATOR '分隔符号') from 表名;-- 示例SELECT GROUP_CONCAT(release_year,genre,imdb SEPARATOR ';') from movies;

执行结果如下:

3.2.4、字段去重排序和自定义分隔

-- 字段去重排序和自定义分隔SELECT GROUP_CONCAT(DISTINCT 字段名 ORDER BY 字段名 asc或desc SEPARATOR '分隔符号') from movies;-- 示例SELECT GROUP_CONCAT(DISTINCT genre ORDER BY genre DESC SEPARATOR ';') from movies;

执行后结果如下:

3.3、group_concat的限制和设置

3.3.1、查看当前group_concat函数的长度

默认是1024字节即1k;

-- 查看当前group_concat函数的长度show variables like 'group_concat_max_len';

执行结果如下:

3.3.2、设置当前Session的group_concat函数的长度,不影响其他的Session

-- 设置当前Session的group_concat的长度为1MSET SESSION group_concat_max_len = 1048576;

执行结果如下:

3.3.3、设置全局 group_concat函数的长度,需断开后重新连接才生效

-- 设置全局 group_concat函数的长度,需断开后重新连接才生效SET GLOBAL group_concat_max_len = 1048576;

执行结果如下:

来源地址:https://blog.csdn.net/xiaochenXIHUA/article/details/128559519

您可能感兴趣的文档:

--结束END--

本文标题: mysql中的实现字段或字符串拼接的三种方式

本文链接: https://lsjlt.com/news/390077.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作