详解MySQL中concat函数的用法(连接字符串)

发布时间 - 2026-01-10 22:01:56    点击率:

MySQL中concat函数

使用方法:

CONCAT(str1,str2,…) 

返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。

注意:

如果所有参数均为非二进制字符串,则结果为非二进制字符串。

如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。

一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型 cast, 例如:

SELECT CONCAT(CAST(int_col AS CHAR), char_col)

MySQL的concat函数可以连接一个或者多个字符串,如

mysql> select concat('10');
+--------------+
| concat('10') |
+--------------+
| 10  |
+--------------+
1 row in set (0.00 sec)

mysql> select concat('11','22','33');
+------------------------+
| concat('11','22','33') |
+------------------------+
| 112233 |
+------------------------+
1 row in set (0.00 sec)

MySQL的concat函数在连接字符串的时候,只要其中一个是NULL,那么将返回NULL

mysql> select concat('11','22',null);
+------------------------+
| concat('11','22',null) |
+------------------------+
| NULL  |
+------------------------+
1 row in set (0.00 sec)

MySQL中concat_ws函数

使用方法:

CONCAT_WS(separator,str1,str2,...)

CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。

注意:

如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。

如连接后以逗号分隔

mysql> select concat_ws(',','11','22','33');

+-------------------------------+
| concat_ws(',','11','22','33') |
+-------------------------------+
| 11,22,33 |
+-------------------------------+
1 row in set (0.00 sec)

和MySQL中concat函数不同的是, concat_ws函数在执行的时候,不会因为NULL值而返回NULL

mysql> select concat_ws(',','11','22',NULL);
+-------------------------------+
| concat_ws(',','11','22',NULL) |
+-------------------------------+
| 11,22 |
+-------------------------------+
1 row in set (0.00 sec)

MySQL中group_concat函数

完整的语法如下:

group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])

基本查询

mysql> select * from aa;
+------+------+
| id| name |
+------+------+
|1 | 10|
|1 | 20|
|1 | 20|
|2 | 20|
|3 | 200  |
|3 | 500  |
+------+------+
6 rows in set (0.00 sec)

以id分组,把name字段的值打印在一行,逗号分隔(默认)

mysql> select id,group_concat(name) from aa group by id;
+------+--------------------+
| id| group_concat(name) |
+------+--------------------+
|1 | 10,20,20|
|2 | 20 |
|3 | 200,500|
+------+--------------------+
3 rows in set (0.00 sec)

以id分组,把name字段的值打印在一行,分号分隔

mysql> select id,group_concat(name separator ';') from aa group by id;
+------+----------------------------------+
| id| group_concat(name separator ';') |
+------+----------------------------------+
|1 | 10;20;20 |
|2 | 20|
|3 | 200;500  |
+------+----------------------------------+
3 rows in set (0.00 sec)

以id分组,把去冗余的name字段的值打印在一行,

逗号分隔

mysql> select id,group_concat(distinct name) from aa group by id;
+------+-----------------------------+
| id| group_concat(distinct name) |
+------+-----------------------------+
|1 | 10,20|
|2 | 20  |
|3 | 200,500 |
+------+-----------------------------+
3 rows in set (0.00 sec)

以id分组,把name字段的值打印在一行,逗号分隔,以name排倒序

mysql> select id,group_concat(name order by name desc) from aa group by id;
+------+---------------------------------------+
| id| group_concat(name order by name desc) |
+------+---------------------------------------+
|1 | 20,20,10  |
|2 | 20|
|3 | 500,200|
+------+---------------------------------------+
3 rows in set (0.00 sec)

repeat()函数

用来复制字符串,如下'ab'表示要复制的字符串,2表示复制的份数

mysql> select repeat('ab',2);

+----------------+
| repeat('ab',2) |
+----------------+
| abab      |
+----------------+

1 row in set (0.00 sec)

又如

mysql> select repeat('a',2);

+---------------+
| repeat('a',2) |
+---------------+
| aa      |
+---------------+
1 row in set (0.00 sec)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# mysql  # concat函数  # concat用法  # mysql的concat函数  # Mysql使用concat函数实现关键字模糊查询功能(列表数据过滤含前后端代码)  # 详解MySQL拼接函数CONCAT的使用心得  # MySQL拼接字符串函数GROUP_CONCAT详解  # mysql函数拼接查询concat函数的使用方法  # Mysql5.7中使用group concat函数数据被截断的问题完美解决方法  # mysql group_concat()函数用法总结  # MySQL函数CONCAT、CONCAT_WS、GROUP_CONCAT用法详解  # 分隔符  # 的是  # 是一个  # 放在  # 第一个  # 多个  # 如有  # 均为  # 这种情况  # 任何一个  # 与之  # 其中一个  # 转化为  # 若要  # 又如  # 值为  # 大家多多  # 份数  # 中含有  # CAST 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏  如何在腾讯云服务器快速搭建个人网站?  Laravel如何为API生成Swagger或OpenAPI文档  如何在宝塔面板中修改默认建站目录?  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  浅述节点的创建及常见功能的实现  android nfc常用标签读取总结  如何在建站宝盒中设置产品搜索功能?  如何用免费手机建站系统零基础打造专业网站?  如何快速登录WAP自助建站平台?  Laravel如何集成Inertia.js与Vue/React?(安装配置)  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  常州企业网站制作公司,全国继续教育网怎么登录?  Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】  网页设计与网站制作内容,怎样注册网站?  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  Android GridView 滑动条设置一直显示状态(推荐)  如何将凡科建站内容保存为本地文件?  QQ浏览器网页版登录入口 个人中心在线进入  大学网站设计制作软件有哪些,如何将网站制作成自己app?  Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】  Laravel如何与Inertia.js和Vue/React构建现代单页应用  西安专业网站制作公司有哪些,陕西省建行官方网站?  香港服务器网站卡顿?如何解决网络延迟与负载问题?  如何快速搭建自助建站会员专属系统?  LinuxShell函数封装方法_脚本复用设计思路【教程】  Laravel如何记录自定义日志?(Log频道配置)  Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件  JavaScript如何实现路由_前端路由原理是什么  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  如何获取上海专业网站定制建站电话?  Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  动图在线制作网站有哪些,滑动动图图集怎么做?  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  Laravel如何使用Sanctum进行API认证?(SPA实战)  高端云建站费用究竟需要多少预算?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  利用 Google AI 进行 YouTube 视频 SEO 描述优化  Laravel如何自定义错误页面(404, 500)?(代码示例)  Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程  如何在腾讯云免费申请建站?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  魔方云NAT建站如何实现端口转发?  南京网站制作费用,南京远驱官方网站?  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  Windows Hello人脸识别突然无法使用