MySQL实现字段或字符串拼接的三种方式总结

作者:牛奶咖啡13 时间:2024-01-22 04:23:47 

一、CONCAT函数

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

concat函数官方介绍

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

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

SELECT CONCAT(字段1,字段2,字段3,...) from 表名;

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

执行结果如下:

MySQL实现字段或字符串拼接的三种方式总结

SELECT CONCAT(字符串1,字符串2,字符串3,...) ;

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

执行结果如下:

MySQL实现字段或字符串拼接的三种方式总结

1.2、拼接空(NULL)字段

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

SELECT CONCAT(字符串1,字符串2,字符串3,...) ;

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

执行结果如下:

MySQL实现字段或字符串拼接的三种方式总结

二、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 ;

执行结果如下:

MySQL实现字段或字符串拼接的三种方式总结

MySQL实现字段或字符串拼接的三种方式总结

2.2、拼接空(NULL)字段

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

执行结果如下:

MySQL实现字段或字符串拼接的三种方式总结

三、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;

执行结果如下:

MySQL实现字段或字符串拼接的三种方式总结

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

3.2.1、自定义分隔符

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

-- 示例:
SELECT GROUP_CONCAT(genre SEPARATOR ';') from movies;

MySQL实现字段或字符串拼接的三种方式总结

3.2.2、将整数转为字符串

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

-- 示例
SELECT GROUP_CONCAT(CAST(id as CHAR) SEPARATOR ';') from movies;

执行结果如下:

MySQL实现字段或字符串拼接的三种方式总结

3.2.3、多字段拼接

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

-- 示例
SELECT GROUP_CONCAT(release_year,genre,imdb SEPARATOR ';') from movies;

执行结果如下:

MySQL实现字段或字符串拼接的三种方式总结

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;

执行后结果如下:

MySQL实现字段或字符串拼接的三种方式总结

3.3、group_concat的限制和设置

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

默认是1024字节即1k;

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

执行结果如下:

MySQL实现字段或字符串拼接的三种方式总结

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

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

执行结果如下:

MySQL实现字段或字符串拼接的三种方式总结

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

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

执行结果如下:

MySQL实现字段或字符串拼接的三种方式总结

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

标签:MySQL,字段,字符串,拼接
0
投稿

猜你喜欢

  • php通过pecl方式安装扩展的实例讲解

    2023-07-23 07:06:12
  • Python3内置模块之base64编解码方法详解

    2021-04-01 15:45:24
  • python实现ftp客户端示例分享

    2021-07-06 08:41:18
  • python感知机实现代码

    2022-03-12 14:59:50
  • 儿童学习python的一些小技巧

    2021-10-14 05:09:40
  • Python开发微信公众平台的方法详解【基于weixin-knife】

    2023-03-09 12:05:43
  • Python高阶函数、常用内置函数用法实例分析

    2023-01-24 17:36:58
  • oracle调试存储过程的过程详解

    2024-01-13 03:51:17
  • iframe全跨域高度自适应解决方案

    2008-12-21 16:16:00
  • XmlUtils JS操作XML工具类

    2024-02-24 14:10:45
  • python字典的元素访问实例详解

    2023-06-10 10:54:11
  • pandas选择或添加列生成新的DataFrame操作示例

    2023-03-02 00:41:51
  • asp简单可逆运算字符串加密解密函数

    2010-05-04 16:42:00
  • 详解Python中常用的图片处理函数的使用

    2021-05-05 18:30:32
  • 使用python matplotlib 画图导入到word中如何保证分辨率

    2023-06-30 21:07:31
  • 用selenium解决滑块验证码的实现步骤

    2021-06-02 01:44:39
  • mysql中为用户设置密码的多种方法

    2024-01-26 07:36:07
  • Firefox的默认样式表

    2008-05-09 12:06:00
  • Django框架中模型的用法

    2022-02-15 00:34:14
  • 详解Java使用JDBC连接MySQL数据库

    2024-01-24 18:21:06
  • asp之家 网络编程 m.aspxhome.com