博客
关于我
MySql中的concat()相关函数
阅读量:793 次
发布时间: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中ON DUPLICATE KEY UPDATE的介绍与使用、批量更新、存在即更新不存在则插入
查看>>
MYSQL中TINYINT的取值范围
查看>>
MySQL中UPDATE语句的神奇技巧,让你操作数据库如虎添翼!
查看>>
Mysql中varchar类型数字排序不对踩坑记录
查看>>
MySQL中一条SQL语句到底是如何执行的呢?
查看>>
MySQL中你必须知道的10件事,1.5万字!
查看>>
MySQL中使用IN()查询到底走不走索引?
查看>>
Mysql中使用存储过程插入decimal和时间数据递增的模拟数据
查看>>
MySql中关于geometry类型的数据_空的时候如何插入处理_需用null_空字符串插入会报错_Cannot get geometry object from dat---MySql工作笔记003
查看>>
mysql中出现Incorrect DECIMAL value: '0' for column '' at row -1错误解决方案
查看>>
mysql中出现Unit mysql.service could not be found 的解决方法
查看>>
mysql中出现update-alternatives: 错误: 候选项路径 /etc/mysql/mysql.cnf 不存在 dpkg: 处理软件包 mysql-server-8.0的解决方法(全)
查看>>
Mysql中各类锁的机制图文详细解析(全)
查看>>
MySQL中地理位置数据扩展geometry的使用心得
查看>>
Mysql中存储引擎简介、修改、查询、选择
查看>>
Mysql中存储过程、存储函数、自定义函数、变量、流程控制语句、光标/游标、定义条件和处理程序的使用示例
查看>>
mysql中实现rownum,对结果进行排序
查看>>
mysql中对于数据库的基本操作
查看>>
Mysql中常用函数的使用示例
查看>>
MySql中怎样使用case-when实现判断查询结果返回
查看>>