加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql 成功实现oracle的connect By一行转多行功能

发布时间:2023-09-21 15:44:23 所属栏目:MySql教程 来源:
导读:在项目中将 oracle 数据库变更为 mysql 数据库的时候,在储存过程中遇见了 connect by 与 regexp_substr 这个关键字,作用是将一行参数转为多行参数

oracle

select regexp_substr('1,2,3,4,5', &#
在项目中将 oracle 数据库变更为 mysql 数据库的时候,在储存过程中遇见了 connect by 与 regexp_substr 这个关键字,作用是将一行参数转为多行参数
 
oracle
 
  select regexp_substr('1,2,3,4,5', '[^,]+', 1, rownum) lzh
 
        from dual
 
      connect by rownum <= length(regexp_replace('1,2,3,4,5', '[^,]+'));
 
在这里插入图片描述
 
现在要将之改为 mysql 数据库,就要使用到数据库自带的 mysql.help_topic 表来属性拆分,help_topic 表就是实现行转列功能
 
解决办法如下:
 
mysql
 
SELECT
 
SUBSTRING_INDEX(
 
SUBSTRING_INDEX('1,2,3,4,5',',',help_topic_id + 1),',' ,- 1) lzh
 
FROM
 
mysql.help_topic
 
WHERE
 
help_topic_id < (LENGTH('1,2,3,4,5')) - LENGTH(REPLACE ('1,2,3,4,5', ',', '')) + 1;
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章