我有一个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命令做到这一点。我很感激帮助!!