在项目中将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;

193



被折叠的 条评论
为什么被折叠?



