美文网首页
mysql列转行(逗号分隔)

mysql列转行(逗号分隔)

作者: 米小河123 | 来源:发表于2019-12-16 10:21 被阅读0次

mysql查询含逗号的数据,将逗号拆分为多行展示:

原始数据如下:

ID VALUE
1 yang,zheng,song
2 zhao,qian,sun
3 jiang

现在因为新的需求,需要将这些数据转化为如下形式:

ID VALUE
1 yang
1 zheng
1 song
2 zhao
2 qian
2 sun
3 jiang

假设我们需要处理的表结构为:

NAME TYPE LEN
ID INT 11
NAME VARCHAR 255

使用如下sql语句即可实现需求:

SELECT a.id,
substring_index( substring_index( a.name, ',', b.help_topic_id + 1 ), ',',- 1 ) name
FROM table1 a
JOIN mysql.help_topic b ON b.help_topic_id < ( length( a.name ) - length( REPLACE ( a.name, ',', '' ) ) + 1 ) 
ORDER BY a.id

查询的主要思路为,原表与一个包含连续自增长字段的表进行join,得到字符串分隔后的索引值,其中length( a.name ) - length( REPLACE ( a.name, ',', '' ) ) + 1语句获得字符串逗号分隔之后得到的数据长度,两表关联之后,会得到相应行数的数据。比如,

1 yang,zheng.song

在join之后会得到:

ID NAME HELP_TOPIC_ID
1 yang,zheng,song 0
1 yang,zheng,song 1
1 yang,zheng,song 2

之后对查询中的结果,使用substring_index方法进行截取,然后得到我们自己想要的数据。

备注:我们在join的时候借助了mysql.help_topic表,表中的help_topic_id是从0到582连续自增的数值,如果遇到数据经过逗号分隔之后得到的数组长度大于582,则需要自己建立一个连续自增表来进行join,比如:

create table incre_table (AutoIncreID int);
insert into incre_table values (0);
insert into incre_table values (1);
insert into incre_table values (2);

相关文章

  • mysql列转行(逗号分隔)

    mysql查询含逗号的数据,将逗号拆分为多行展示: 原始数据如下: IDVALUE1yang,zheng,song...

  • mysql函数之group_concat指定分隔符

    mysql中函数group_concat(arg)合并多行的某列数据为一行,默认分隔符为逗号,如果我们想自定义分隔...

  • MySQL行转列,列转行

    参考: MySQL行转列实现和总结 mysql中列转行,并多个字段转到一行中的一个字段上,中间用逗号分开 mysq...

  • excel打开csv 出现乱码怎么解决

    CSV是逗号分隔值的英文缩写,通常都是纯文本文件。CSV格式是分隔的数据格式,有字段/列分隔的逗号字符和记录/行...

  • 2019-02-12 AWK常用用法(01):指定分隔符

    指定分隔符 使用 awk -F原始数据 按逗号分隔,取第一第三列 输出结果

  • mysql 列转行

    mysql 的group_concat函数很好用,可以把列转成行。 SELECT threadid, group_...

  • mysql列转行

    需求:将表 idcolumn1A,B,C2D,E 转为表 idcolumn1A1B1C2D2E 新建表:test ...

  • mysql查询逗号分隔的数据

    表结构 插入数据 将一个逗号分隔的字段转成多行记录 find_in_set函数会根据字段里面的逗号分隔,所以我们存...

  • python读写csv文件(csv)

    [CSV (Comma Separated Values)]即逗号分隔值(也称字符分隔值,因为分隔符可以不是逗号)...

  • CSV 介绍

    逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号...

网友评论

      本文标题:mysql列转行(逗号分隔)

      本文链接:https://www.haomeiwen.com/subject/zburnctx.html