mysql将一个值拆分成多行_mysql – SQL将值拆分为多行

如果您可以创建一个数字表,其中包含从1到要分割的最大字段的数字,您可以使用如下解决方案:

select

tablename.id,

SUBSTRING_INDEX(SUBSTRING_INDEX(tablename.name, ',', numbers.n), ',', -1) name

from

numbers inner join tablename

on CHAR_LENGTH(tablename.name)

-CHAR_LENGTH(REPLACE(tablename.name, ',', ''))>=numbers.n-1

order by

id, n

请看小提琴here。

如果你不能创建一个表,那么一个解决方案可能是这样的:

select

tablename.id,

SUBSTRING_INDEX(SUBSTRING_INDEX(tablename.name, ',', numbers.n), ',', -1) name

from

(select 1 n union all

select 2 union all select 3 union all

select 4 union all select 5) numbers INNER JOIN tablename

on CHAR_LENGTH(tablename.name)

-CHAR_LENGTH(REPLACE(tablename.name, ',', ''))>=numbers.n-1

order by

id, n

一个例子小提琴是here。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值