MySQL之如何将字符串分隔为列表结果集

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: MySQL之如何将字符串分隔为列表结果集

写在前面

今天在开发过程中遇到一个问题,那就是想要将一个有着固定分隔符的字符串,转换为多行的一个列表结果集,相信也有朋友遇到过,那下面就一起来看一下吧。

MySQL之如何将字符串分隔为列表结果集

要想将一个带有分隔符的字符串,转换成一个列表结果集。

在Oracle中我们通常使用level connect by关键字,但是这些关键字,在MySQL中可没有。

虽然没有这个关键字,但是思路是差不多的,也是要通过循环来解决这个问题。

咱们一步步的来,首先要做的就是mysql如何进行分割字符串。

今天要学习的第一个函数,substring_index,通过这个函数来获取到第几个分割符后的值。

一般要传入三个参数,分别是原字符串,分隔符,第几个分隔符。

通过这个三个参数,可以获取到相应的值。

我们得到了这个值后,就可以考虑如何循环得到所有的分隔符后的值了。

在mysql中,我们可以通过循环一个连续的数值,比如说一个id值。

通常我们使用help_topic表,这个是mysql中内置的一个表,通过这个表,我们可以编写出如下的一个SQL:

select substring_index('123,234,345', ',', help_topic_id + 1) from mysql.help_topic where help_topic_id < (length('123,234,345') - length(REPLACE('123,234,345', ',', '') ) + 1 )

通过这个SQL,我们可以得到一个结果,如下所示:

123

234

345

大家也可以自行去试一下,当然如果要连表查询其他表的话,也可以通过join、left join连表来查询结果。

如果通过连表查询的话,判断条件help_topic_id < (length('123,234,345') - length(REPLACE('123,234,345', ',', '') ) + 1 )就可以写在ON关键字后面即可。

总结

今天学习了在MySQL中,我们是如何将一个多分隔符的字符串,转换成一个列表的结果集,不知道大家是否有所收获。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6月前
|
SQL 存储 关系型数据库
|
6月前
|
SQL 缓存 关系型数据库
MySQL技能完整学习列表6、查询优化——3、查询缓存——4、SQL优化技巧
MySQL技能完整学习列表6、查询优化——3、查询缓存——4、SQL优化技巧
119 0
|
3月前
|
SQL 自然语言处理 关系型数据库
MySQL的match匹配多个字符串的语法
【8月更文挑战第27天】MySQL的match匹配多个字符串的语法
219 67
|
3月前
|
SQL 自然语言处理 关系型数据库
MySQL的match匹配多个字符串的语法
【8月更文挑战第29天】MySQL的match匹配多个字符串的语法
132 2
|
2月前
|
SQL 关系型数据库 MySQL
MySQL根据某个字段包含某个字符串或者字段的长度情况更新另一个字段的值,如何写sql
MySQL根据某个字段包含某个字符串或者字段的长度情况更新另一个字段的值,如何写sql
180 0
|
3月前
|
存储 关系型数据库 MySQL
|
3月前
|
前端开发 关系型数据库 MySQL
mysql截断字符串
在MySQL中,有多种方法可以实现字符串的截断,每种方法都有其特定的应用场景。通过灵活使用这些字符串处理函数,可以高效地对数据进行处理和分析。在实际的数据库操作中,根据实际需求选择最合适的函数是关键。
138 0
|
6月前
|
SQL 关系型数据库 MySQL
MySQL技能完整学习列表10、数据导入和导出——1、数据导入(LOAD DATA, mysqldump)——2、数据导出(SELECT ... INTO OUTFILE, mysqldump)
MySQL技能完整学习列表10、数据导入和导出——1、数据导入(LOAD DATA, mysqldump)——2、数据导出(SELECT ... INTO OUTFILE, mysqldump)
119 0
|
6月前
|
存储 SQL 关系型数据库
MySQL技能完整学习列表7、存储过程和函数——1、存储过程(Stored Procedures)的创建和执行——2、函数(Functions)的创建和使用
MySQL技能完整学习列表7、存储过程和函数——1、存储过程(Stored Procedures)的创建和执行——2、函数(Functions)的创建和使用
75 0
下一篇
无影云桌面