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;
相關文章
相關標籤/搜索