如何通过迭代查询的值在MySQL数据库中创建新行?

时间:2018-02-20 20:58:36

标签: mysql

我有一个MySQL表,其中有一些值在多列上用逗号分隔。因此,我们的想法是创建新行,其中包含与每个原始行相对于逗号相同位置的值。

原始查询结果:

#   Col1        Col2        Col3                Col4 
1   id1         10          0.1                 0.2
2   id2,id3     5,4         0.2,0.3             0.3,0.5
3   id4         3,8         0.5,0.0             1.0,0.8
4   id5         3,8,9,12    0.5,0.0,0.5,0.0     1.0,0.8,0.0,0.5

我想通过分割具有以逗号分隔的值的原始行来为表生成新行。如果col1上有多个值,则新行将从相同位置获取Col2,Col3和Col4中的值。如果Col1只有一个值,则重复该值,新行将从Cols 2,3和4中获取相应的值。

#   Col1        Col2        Col3        Col4 
1   id1         10          0.1         0.2
2   id2         5           0.2         0.3
3   id3         4           0.3         0.5
4   id4         3           0.5         1.0
5   id4         8           0.0         0.8
6   id5         3           0.5         1.0
7   id5         8           0.0         0.8
8   id5         9           0.5         0.0
9   id5         12          0.0         0.5

我知道用Python做起来要容易得多,但是我的数据库大于20gb,所以我希望我能用MySQL命令做到这一点。我很感激帮助!!

0 个答案:

没有答案