MySQL实现字段或字符串拼接的三种方式总结
作者:牛奶咖啡13 发布时间:2024-01-22 04:23:47
标签:MySQL,字段,字符串,拼接
一、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的长度为1M
SET 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


猜你喜欢
- 和设计师打过交道的人一定也见到过少数极品,不是扎着小辫子留着小胡子,就是剃了光头抽根烟,通常说起来一套一套的人作品都很一般般,而作品一般般的
- asp代码 <% Dim Rs,Conn Set Conn=Server.CreateObject("Adodb.Conne
- 使用Python 分析Nginx access 日志,根据Nginx日志格式进行分割并存入MySQL数据库。一、Nginx access日志
- 前言 基于mybatis的AbstractRoutingDataSource和I
- 步骤:1.从php.net上面下载php5.3.x版本的源码;2.centos安装相应的扩展包:yum install libmcrypt
- 前言问题:我们在放大图片的过程中,放大的目标图像和原图图像之间会存在不同。放大的基本思想:第一步:将目标图像进行缩小到原图像的尺寸,虚拟的将
- 代码如下:'===================================== '获得文件后缀 '=====
- 前言在部署一些定时运行或者长期运行的任务时,为了留存一些导致程序出现异常或错误的信息,通常会才用日志的方式来进行记录这些信息。python内
- Data Points Archive 有时, 为了让应用程序运行得更快,所做的全部工作就是在这里或那里做一些很小调整。啊,但关键在于确定如
- 1. 检查mysql服务是否启动,如果启动,关闭mysql服务运行命令:ps -ef | grep -i mysql如果开着就运行关闭的命令
- 前言: 上一篇讲了Python排序问题中比较经典的三个方法,(链接:关于Python排
- python记录程序运行时间的三种方法 &nb
- 可以用两种方式创建MySQL账户:1.使用GRANT语句2.直接操作MySQL授权表最好的方法是使用GRANT语句,因为这样更精确,错误少。
- 本文实例讲述了Python使用内置json模块解析json格式数据的方法。分享给大家供大家参考,具体如下:Python中解析json字符串非
- 前言SVG可以算是目前最最火热的图像文件格式了,它的英文全称为Scalable Vector Graphics,意思为可缩放的矢量图形。它是
- 上一篇博文,我们已经顺利的从cnodejs.org请求到了数据,但是大家可以注意到我们的/src/api/index.js的第一句就是://
- 下面这段代码是兼容IE的图片切换代码,请问各位老鸟如何兼容FF,或者有相类似无按钮无数字兼容FF的图片切换代码?<!DOCTYPE h
- 一、反射概述反射是指程序在运行期间对程序本身进行访问和修改的能力。程序在编译过程中变量会被转换为内存地址,变量名不会被编译器写入到可执行部分
- 内容: ************* 1安装MYSQL后更改了ROOT的密码后用 net startmysql 启动时我就遇到了这样的问题.使
- 我最近也在研究MySQL性能优化的路上,那么今天也算个学习笔记吧!在小伙伴们开发的项目中,对于MySQL排查问题找出性能瓶颈来说,最容易发现