当前业务需求:
根据某一个字段的字符串通过指定的分隔符,将原始的一行数据分隔为多行数据
原数据:
需要的结果数据格式
实现sql:
select acct.id, substring_index(substring_index(many, ',', h.id), ',', -1) as one
from sys acct
cross join help_select_id h
where h.id < (char_length(many) - char_length(replace(many, ',', '')) + 2)
分析 :
select acct.id,
# 由于数据保存使用的是逗号分隔;所以进行取元素
substring_index(
substring_index(many, ',', h.id)
, ',', -1) as one
from sys acct
# 创建的一个辅助表;此表只有一个id字段;数据值是自增;由于数据是我自己插入的;所以第一条数
# 据是从1开始的;假如此表的第一条数据id是0;那么需要修改where条件后面 +的数量为1而不是2
# 注意 ①help_sele