我有一个MySQL数据库内数据与7列(chr
,pos
,num
,iA
,iB
,iC
,iD
)和包含各含有一个数据集40000000行的文件。每行具有4个制表符分隔的列,而第一三列总是包含数据,以及第四列可以包含多达三个不同key=value
对由分号写部分制表符分隔的数据MySQL数据库
chr pos num info
1 10203 3 iA=0.34;iB=nerv;iC=45;iD=dskf12586
1 10203 4 iA=0.44;iC=45;iD=dsf12586;iB=nerv
1 10203 5
1 10213 1 iB=nerv;iC=49;iA=0.14;iD=dskf12586
1 10213 2 iA=0.34;iB=nerv;iD=cap1486
1 10225 1 iD=dscf12586
在列信息的键值对具有分离没有特定的顺序。我也不确定一个键是否会出现两次(我不希望)。
我想将数据写入数据库。前三列没有问题,但是从info-columns中提取值使我困惑,因为key = value对是无序的,并不是每个键都必须在行中。 对于一个类似的数据集(有序的信息列),我用一个java-Programm与正则表达式相关联,这使得我可以(1)检查和(2)提取数据,但现在我陷入困境。
我该如何解决这个任务,最好用bash脚本或直接在MySQL中解决?
什么? – HamZa 2013-05-14 08:03:11
对不起,这可以用几乎任何语言来完成:p我要做的是以下内容:遍历每一行,由\ t +'分隔(tab(s))。 *用';'分割最后一个制表符,再用'='分割。现在你有了* info *的值,你只需创建它后面的逻辑并创建一个查询并执行它。 – HamZa 2013-05-14 08:08:30
@R_User,你是否得到了答案? – svante 2013-09-10 13:11:34