详解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


相关推荐: 三星、SK海力士获美批准:可向中国出口芯片制造设备  C++时间戳转换成日期时间的步骤和示例代码  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  如何撰写建站申请书?关键要点有哪些?  太平洋网站制作公司,网络用语太平洋是什么意思?  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  Laravel如何记录自定义日志?(Log频道配置)  Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验  标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南  Laravel如何实现API资源集合?(Resource Collection教程)  WordPress 子目录安装中正确处理脚本路径的完整指南  如何将凡科建站内容保存为本地文件?  如何用腾讯建站主机快速创建免费网站?  打开php文件提示内存不足_怎么调整php内存限制【解决方案】  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  Laravel怎么清理缓存_Laravel optimize clear命令详解  如何在IIS管理器中快速创建并配置网站?  Laravel如何创建自定义中间件?(Middleware代码示例)  Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程  ,交易猫的商品怎么发布到网站上去?  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】  如何快速搭建高效简练网站?  做企业网站制作流程,企业网站制作基本流程有哪些?  Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解  Laravel如何生成URL和重定向?(路由助手函数)  python中快速进行多个字符替换的方法小结  Laravel如何配置任务调度?(Cron Job示例)  谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程  浅析上传头像示例及其注意事项  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  Swift开发中switch语句值绑定模式  大连 网站制作,大连天途有线官网?  b2c电商网站制作流程,b2c水平综合的电商平台?  昵图网官网入口 昵图网素材平台官方入口  如何快速打造个性化非模板自助建站?  如何为不同团队 ID 动态生成多个独立按钮  高性能网站服务器配置指南:安全稳定与高效建站核心方案  laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法  如何用虚拟主机快速搭建网站?详细步骤解析  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  高端企业智能建站程序:SEO优化与响应式模板定制开发  如何构建满足综合性能需求的优质建站方案?  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  什么是javascript作用域_全局和局部作用域有什么区别?  Laravel怎么为数据库表字段添加索引以优化查询  Laravel如何使用Livewire构建动态组件?(入门代码)  Python图片处理进阶教程_Pillow滤镜与图像增强