MYSQL根据逗号将一行数据拆分成多行数据

[不指定 2019/06/12 11:06 | by 白燕湾 | Via 本站原创 ]
工作中,经常有按规定字符拆分行的情况,比如在订单处理时,有一个客户订单对应多个商品时,需拆分。
在拆分前,我们首先需要知道,取哪个特定的字符进行拆分?
如果是逗号,是中文字符还是英文字符?
如果用length(str)函数,中文返回的结果是3*
英文字符的返回字符是1*;
所以:需要掌握:length(str)和char_length(str)的运用。
以下场景如:                            
usernametags
王五10,11,12
龙大12,13

MYSQL代码:
select a.username,substring_index(substring_index(a.tags,',',b.help_topic_id+1),',',-1) tag
from USER_TAG a join
mysql.help_topic b
on b.help_topic_id < (length(a.tags) - length(replace(a.tags,',',''))+1)
order by username;
                                                              
usernametags
王五10
王五11
王五12
龙大12
龙大13

help_topic是mysql库下的一张表,如果没权限,可以通过:
Tags:
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]