mysql 某列值通过分隔字符串将值转成行方法实践(模板)

通过将 aa 表中列 iplist  中值拆分成  行显示   

sql语句   

SELECT a.rolename,SUBSTRING_INDEX(SUBSTRING_INDEX(a.iplist,',',b.id),',',-1)   AS IP
FROM 
aa    a
JOIN
bb  b
ON b.id < (LENGTH(a.iplist) - LENGTH(REPLACE(a.iplist,',',''))+2)

rolename: 列名  ,iplist:列名  例:10.110.0.90, 10.110.0.91, 10.110.0.92,10.110.0.96

aa:需要拆解的表   bb:可以是任何一张表,只要该表中id是自增id 例:1、2、3、4、5、7、8。。。。。

SUBSTRING_INDEX :mysql的函数

注意:

      1.此sql语句是个模板,只要将您实际中需要的值替换就可以

      2. bb表也可是使用 mysql.help_topic  此表代替,我这儿使用 任意一张表主要是因为实际工作中生产环境下没有最高权限,无法使用 mysql.help_topic表,所以我使用了该账户下面的任意一张带自增ID的表。

     3.  任意一张自增ID表中的值长度必须大于aa表中iplist列中被分割的字符串的长度,以免查询出错!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值