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

简介: 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中,我们是如何将一个多分隔符的字符串,转换成一个列表的结果集,不知道大家是否有所收获。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
SQL 存储 关系型数据库
MySQL更新某个字段拼接固定字符串
【4月更文挑战第24天】
1101 1
|
SQL 自然语言处理 关系型数据库
MySQL的match匹配多个字符串的语法
【8月更文挑战第27天】MySQL的match匹配多个字符串的语法
759 67
|
关系型数据库 MySQL
MySQL字符串拼接方法全解析
本文介绍了四种常用的字符串处理函数及其用法。方法一:CONCAT,用于基础拼接,参数含NULL时返回NULL;方法二:CONCAT_WS,带分隔符拼接,自动忽略NULL值;方法三:GROUP_CONCAT,适用于分组拼接,支持去重、排序和自定义分隔符;方法四:算术运算符拼接,仅适用于数值类型,字符串会尝试转为数值处理。通过示例展示了各函数的特点与应用场景。
|
SQL 关系型数据库 MySQL
MySQL技能完整学习列表10、数据导入和导出——1、数据导入(LOAD DATA, mysqldump)——2、数据导出(SELECT ... INTO OUTFILE, mysqldump)
MySQL技能完整学习列表10、数据导入和导出——1、数据导入(LOAD DATA, mysqldump)——2、数据导出(SELECT ... INTO OUTFILE, mysqldump)
454 0
|
存储 SQL 关系型数据库
MySQL技能完整学习列表7、存储过程和函数——1、存储过程(Stored Procedures)的创建和执行——2、函数(Functions)的创建和使用
MySQL技能完整学习列表7、存储过程和函数——1、存储过程(Stored Procedures)的创建和执行——2、函数(Functions)的创建和使用
295 0
|
SQL 自然语言处理 关系型数据库
MySQL的match匹配多个字符串的语法
【8月更文挑战第29天】MySQL的match匹配多个字符串的语法
870 3
|
存储 关系型数据库 MySQL
|
关系型数据库 MySQL Linux
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
|
SQL 关系型数据库 MySQL
MySQL根据某个字段包含某个字符串或者字段的长度情况更新另一个字段的值,如何写sql
MySQL根据某个字段包含某个字符串或者字段的长度情况更新另一个字段的值,如何写sql
919 0
|
关系型数据库 MySQL 数据库
如何在MySQL中查看已创建的数据库列表?
【5月更文挑战第22天】如何在MySQL中查看已创建的数据库列表?
1620 1

推荐镜像

更多