从“导入数据到MySQL”;混合;数据集

从“导入数据到MySQL”;混合;数据集,mysql,import,Mysql,Import,我有一个问题,我正在努力解决。我想导入大型数据集,其中不同的行属于不同的表(具有完全不同的属性集) 数据集由“批次”组成,其中每个批次都有“标题”和“表格”。标题本身由一行组成,其中包含一组已定义的属性。有几种标题。标题下的所有行都与此标题相关,直到出现新标题。与特定标题相关的这些行可以是不同类型的,因此可以属于不同的表(包含由不同属性集表示的不同信息)。 例如: 参见下面的示例。我有8排。我知道第一个字符“A”或“F”定义了新批次的开始,例如标题“A”具有属性“XXX”、“TTT”、“ZZZ”

我有一个问题,我正在努力解决。我想导入大型数据集,其中不同的行属于不同的表(具有完全不同的属性集)

数据集由“批次”组成,其中每个批次都有“标题”和“表格”。标题本身由一行组成,其中包含一组已定义的属性。有几种标题。标题下的所有行都与此标题相关,直到出现新标题。与特定标题相关的这些行可以是不同类型的,因此可以属于不同的表(包含由不同属性集表示的不同信息)。 例如:

参见下面的示例。我有8排。我知道第一个字符“A”或“F”定义了新批次的开始,例如标题“A”具有属性“XXX”、“TTT”、“ZZZ”和“YYY”(在这些特定位置的特定长度)。A还知道以“V”或“L”开头的行包含与其所属批次相关的信息。但如果“V”跟在标题“A”后面,则它包含的属性与跟在标题“F”后面的属性不同

现在我想要几张桌子。我想为所有类型的标题(即包含标题“A”中的所有信息的表)创建单独的表。然后,我需要一个表格,用于批次“A”中以“V”开头的行中的所有值,以及另一个表格,用于批次“F”等中以“V”开头的行中的所有值。我还希望将所选属性从标题复制到以下行,因为当我分组时,例如,从批次“A”开始的以“V”开头的所有行我需要知道一些信息,这是包含在标题中,只有我以后的工作

id.值

1 AXXXTTTZZYYY

2 VZZTTGGGFFF

3 VZZTTGGGFFF

4 LHHHBBVVv

5 FXXXTTTSSSFFF

6 VDDDFFFGGTT

7 VDDDFFFGGTT

8 AXXXTTTZZZYYY

有人知道如何解决这个问题吗?
谢谢大家!

您想要这样的输出吗? 第一列是文件中的id,下一列是主表和子表之间的关系。最后是你的数据

INSERT into main VALUES(1,1,"AXXXTTTZZZYYY");
INSERT into sub  VALUES(2,1,"VZZZTTTGGGFFF");
INSERT into sub  VALUES(3,1,"VZZZTTTGGGFFF");
INSERT into sub  VALUES(4,1,"LHHHBBBVVV");
INSERT into main VALUES(5,2,"FXXXTTTSSSFFF");
INSERT into sub  VALUES(6,2,"VDDDFFFGGTT");
INSERT into sub  VALUES(7,2,"VDDDFFFGGTT");
INSERT into main VALUES(8,3,"AXXXTTTZZZYYY");
您可以使用一个小awk脚本:

$ cat split.awk
#!/usr/bin/awk -f

BEGIN {
c=0;
}
{
        if( substr($2,1,1) >= "A" && substr($2,1,1) <= "F") {
                c++;
                 print "INSERT into main VALUES(" $1 "," c ",\"" $2 "\");";
        } else {
                 print "INSERT into sub  VALUES(" $1 "," c ",\"" $2 "\");";
        }


}

身份证对你来说重要吗?
$ cat list.txt | ./split.awk
INSERT into main VALUES(1,1,"AXXXTTTZZZYYY");
INSERT into sub  VALUES(2,1,"VZZZTTTGGGFFF");
INSERT into sub  VALUES(3,1,"VZZZTTTGGGFFF");
INSERT into sub  VALUES(4,1,"LHHHBBBVVV");
INSERT into main VALUES(5,2,"FXXXTTTSSSFFF");
INSERT into sub  VALUES(6,2,"VDDDFFFGGTT");
INSERT into sub  VALUES(7,2,"VDDDFFFGGTT");
INSERT into main VALUES(8,3,"AXXXTTTZZZYYY");

$