mysql 把字段進行逗號分隔成多條資料

2021-07-31 07:32:46 字數 623 閱讀 6012

由於很多業務表因為歷史原因或者效能原因,都使用了違反第一正規化的設計模式。即同乙個列中儲存了多個屬性值(具體結構見下表)。

這種模式下,應用常常需要將這個列依據分隔符進行分割,並得到列轉行的結果。

表資料:

id  value

1 tiny,small,big

2 small,medium

3 tiny,big

期望得到結果:

id value

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;

mysql 把字段進行逗號分隔成多條資料

由於很多業務表因為歷史原因或者效能原因,都使用了違反第一正規化的設計模式。即同乙個列中儲存了多個屬性值 具體結構見下表 這種模式下,應用常常需要將這個列依據分隔符進行分割,並得到列轉行的結果。表資料 id value 1 tiny,small,big 2 small,medium 3 tiny,bi...

MySQL 根據欄位中的逗號分隔成多條資料

將資料庫表的字段進行切割,分成多條資料。表資料 test表 期望得到的查詢結果為 id name 1 張三 1 李四 1 王五 2 肖1 2 肖2 sql語句 select a.id,substring index substring index a.name,b.help topic id 1 1...

mysql逗號分隔List欄位轉多行

具體的邏輯我還沒整明白,先記上再說,親測可用。select a1.id,a1.job depends from job version history a1 where a1.id in 1655,1656 id job depends 1655 353,3,532 1656 484,5,567se...