mysql正则表达式分割字符

字符: P001/(P002+P003+P004+P005-P006+P007)

怎么拆分这个字符并得出它的层级,最终想要的结果是想按照数学运算给出层级这样的

level    name   

1          P002

1          P003

1          P004

1          P005

1          P006

1          P007

2          P001

蕉太狼 发布于 2022-4-20 19:43
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
CD20160914Lv8专家互助
发布于2022-4-20 20:00(编辑于 2022-4-21 10:42)

数据符号给出层级??为什么p001是2级?没有明白

SELECT

    SUBSTRING_INDEX(SUBSTRING_INDEX( a.`name`, ',', b.help_topic_id + 1 ), ',',-1 ) name

FROM

    (select replace(replace(replace(replace('(1+2)-(3+4*6)','+',','),'-',','),'*',','),'/',',') as name) a

    JOIN mysql.help_topic b ON b.help_topic_id < ( LENGTH( a.`name`) - LENGTH( REPLACE ( a.`name`, ',', '' ) ) + 1 );

image.png

  • 蕉太狼 蕉太狼(提问者) 先算括号里面的,除号就是第二层级了,或者不要层级,只要name
    2022-04-21 09:22 
  • CD20160914 CD20160914 回复 蕉太狼(提问者) 里面有+-*/四种混合运算符号??
    2022-04-21 09:24 
  • 蕉太狼 蕉太狼(提问者) 回复 CD20160914 还有括号 \"(\" , \" )\"
    2022-04-21 09:45 
  • CD20160914 CD20160914 回复 蕉太狼(提问者) 有没有多种括号的情况???比如1/(3+5)+(7*8)-(15+25+33)
    2022-04-21 09:46 
  • 蕉太狼 蕉太狼(提问者) 回复 CD20160914 会有两个括号的场景如(1+2)-(3+4),好分割吗正则
    2022-04-21 09:56 
  • 2关注人数
  • 391浏览人数
  • 最后回答于:2022-4-21 10:42
    请选择关闭问题的原因
    确定 取消
    返回顶部