mysql 把字段进行逗号分隔成多条数据

因为不少业务表由于历史缘由或者性能缘由,都使用了违反第一范式的设计模式。即同一个列中存储了多个属性值(具体结构见下表)。mysql

这种模式下,应用经常须要将这个列依据分隔符进行分割,并获得列转行的结果。sql

表数据:设计模式

ID  Value性能

1 tiny,small,big设计

2 small,mediumcode

3 tiny,bigstring

指望获得结果:class

ID Valueselect

1 tiny数据

1 small

1 big

2 small

2 medium

3 tiny

3 big

select a.ID,substring_index(substring_index(a.mSize,',',b.help_topic_id+1),',',-1) 
from 
tbl_name a
join
mysql.help_topic b
on b.help_topic_id < (length(a.mSize) - length(replace(a.mSize,',',''))+1)
order by a.ID;
相关文章
相关标签/搜索