博客
关于我
MySql中的concat()相关函数
阅读量:790 次
发布时间:2023-02-11

本文共 2137 字,大约阅读时间需要 7 分钟。

MySQL 中常用字符串连接函数详解

作为数据库开发人员,熟悉MySQL 中的字符串连接函数是必不可少的。以下将详细介绍几种常用的字符串连接函数,包括 CONCATCONCAT_WSGROUP_CONCAT,并通过实例说明其用法。

1. CONCAT 函数的基本应用

CONCAT 函数用于将两个字符串连接起来,形成一个单一的字符串。其基本语法如下:

CONCAT(str1, str2, ...)

示例:

SELECT CONCAT('FIRST ', 'SECOND');

运行结果如下:

CONCAT('FIRST ', 'SECOND')
FIRST SECOND

这表明 CONCAT 函数能够简单地将两个字符串拼接起来。

在实际应用中,CONCAT 可用于将多个字段进行连接。例如,假设 employee_tbl 表包含以下记录:

SELECT * FROM employee_tbl;

运行结果如下:

id name work_date daily_typing_pages
1 John 2007-01-24 250
2 Ram 2007-05-27 220
3 Jack 2007-05-06 170
3 Jack 2007-04-06 100
4 Jill 2007-04-06 220
5 Zara 2007-06-06 300
5 Zara 2007-02-06 350

如果需要将员工ID、姓名和工作日期连接起来,可以使用以下命令:

SELECT CONCAT(id, name, work_date) FROM employee_tbl;

运行结果如下:

CONCAT(id, name, work_date)
1John2007-01-24
2Ram2007-05-27
3Jack2007-05-06
3Jack2007-04-06
4Jill2007-04-06
5Zara2007-06-06
5Zara2007-02-06

2. CONCAT_WS 函数的基本用法

CONCAT_WSCONCAT 的一种变种,用于在字符串之间插入指定的分隔符。其语法如下:

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

示例:

SELECT CONCAT_WS(',','11','22','33');

运行结果如下:

CONCAT_WS(',','11','22','33')
11,22,33

CONCAT 不同的是,CONCAT_WS 会忽略 NULL 值。例如:

SELECT CONCAT_WS(',','11','22',NULL);

运行结果如下:

CONCAT_WS(',','11','22',NULL)
11,22
#### 3. GROUP_CONCAT 函数的基本应用`GROUP_CONCAT` 用于在组内的记录中将多个字段连接起来。其语法如下:```sqlGROUP_CONCAT([DISTINCT] column_name [ORDER BY ...] [SEPARATOR ...])

示例:

假设 aa 表包含以下记录:

SELECT * FROM aa;

运行结果如下:

id name
1 10
1 20
1 20
2 20
3 200
3 500

如果需要按 id 分组,将 name 字段连接起来,可以使用以下命令:

SELECT id, GROUP_CONCAT(name) FROM aa GROUP BY id;

运行结果如下:

id GROUP_CONCAT(name)
1 10,20,20
2 20
3 200,500

如果需要自定义分隔符,可以使用 SEPARATOR 参数:

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

如果需要去重,可以使用 DISTINCT 参数:

SELECT id, GROUP_CONCAT(DISTINCT name) FROM aa GROUP BY id;

运行结果如下:

id GROUP_CONCAT(DISTINCT name)
1 10,20
2 20
3 200,500

如果需要按 name 排序,可以使用 ORDER BY 参数:

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

总结

通过以上示例,可以看出 CONCATCONCAT_WSGROUP_CONCAT 在实际应用中具有广泛的用途。无论是简单的字符串拼接,还是复杂的字段连接,都是开发人员日常工作中的常见需求。掌握这些函数的用法,能够显著提升数据库操作的效率。

转载地址:http://bvbfk.baihongyu.com/

你可能感兴趣的文章
mysql select, from ,join ,on ,where groupby,having ,order by limit的执行顺序和书写顺序
查看>>
MySQL Server 5.5安装记录
查看>>
mysql slave 停了_slave 停止。求解决方法
查看>>
MySQL SQL 优化指南:主键、ORDER BY、GROUP BY 和 UPDATE 优化详解
查看>>
mysql sum 没返回,如果没有找到任何值,我如何在MySQL中获得SUM函数以返回'0'?
查看>>
mysql Timestamp时间隔了8小时
查看>>
Mysql tinyint(1)与tinyint(4)的区别
查看>>
mysql union orderby 无效
查看>>
mysql where中如何判断不为空
查看>>
mysql workbench6.3.5_MySQL Workbench
查看>>
MySQL Workbench安装教程以及菜单汉化
查看>>
MySQL Xtrabackup 安装、备份、恢复
查看>>
mysql [Err] 1436 - Thread stack overrun: 129464 bytes used of a 286720 byte stack, and 160000 bytes
查看>>
MySQL _ MySQL常用操作
查看>>
MySQL – 导出数据成csv
查看>>
MySQL —— 在CentOS9下安装MySQL
查看>>
mysql 不区分大小写
查看>>
mysql 两列互转
查看>>
MySQL 中开启二进制日志(Binlog)
查看>>
MySQL 中文问题
查看>>