我有一个txt数据需要导入mysql数据库,数据大致如下形式:
<SUBBEGIN
SI=123456789012345;
MS=1234567890123;
DE=TH11;
AM=DOTH;
CAT=COMMON;
BS=TH11&TH12&TH21&TH22;
SN=1234567890;
CF=C-A-P-N-NO-NO-N-Y-12345-NO-NO-NO-NO-NO-NO-NO-NO-NO-NO;
CF=C-A-P-N-NO-Y-N-Y-12345-NO-NO-NO-NO-NO-NO-NO-NO-NO-NO;
XT=4-241-33-1-NONE-2-3-9-31-2-0-u-2-3-2-1-150-151-254-7-4-18-2-104-104-PAID;
XT=2-241-33-1-NONE-2-3-9-31-2-0-p-2-3-2-1-150-151-254-7-4-18-2-104-104-PAID;
XT=5-241-33-1-NONE-2-3-9-31-2-0-t-2-3-2-1-150-151-254-7-4-18-2-104-104-PAID;
OP=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
FLAG=NULL-NULL-NULL-NULL-NULL-NULL-NULL;
MME=1234567890;
AY=NO;
<SUBEND
<SUBBEGIN
SI=123456789012543;
MS=8765432190123;
DE=TH11;
AM=DOTH;
CAT=COMMON;
BS=TH11&TH43&TH21&TH22;
SN=1234567866;
CF=C-A-P-N-NO-NO-N-Y-12345-NO-NO-NO-NO-NO-NO-NO-NO-NO-NO;
CF=C-A-P-N-NO-Y-N-Y-12345-NO-NO-NO-NO-NO-NO-NO-NO-NO-NO;
XT=4-241-33-1-NONE-2-3-9-31-2-0-u-2-3-2-1-150-151-254-7-4-18-2-104-104-PAID;
XT=2-241-33-1-NONE-2-3-9-31-2-0-p-2-3-2-1-150-151-254-7-4-18-2-104-104-PAID;
XT=5-241-33-1-NONE-2-3-9-31-2-0-t-2-3-2-1-150-151-254-7-4-18-2-104-104-PAID;
OP=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
FLAG=NULL-NULL-NULL-NULL-NULL-NULL-NULL;
<SUBEND
<SUBBEGIN
SI=123456789012543;
MS=8765432190123;
DE=TH11;
AM=DOTH;
CAT=COMMON;
DN=NO;
BS=TH11&TH43&TH21&TH22;
SN=1234567866;
XT=4-241-33-1-NONE-2-3-9-31-2-0-u-2-3-2-1-150-151-254-7-4-18-2-104-104-PAID;
XT=2-241-33-1-NONE-2-3-9-31-2-0-p-2-3-2-1-150-151-254-7-4-18-2-104-104-PAID;
XT=5-241-33-1-NONE-2-3-9-31-2-0-t-2-3-2-1-150-151-254-7-4-18-2-104-104-PAID;
XT=4-241-33-1-NONE-2-3-9-31-2-0-u-2-3-2-1-150-151-254-7-4-18-2-104-104-PAID;
OP=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
FLAG=NULL-NULL-NULL-NULL-NULL-NULL-NULL;
MME=1234567890;
AY=NO;
<SUBEND
。
每一条记录都是由<SUBBEGIN开始,<SUBEND结束,每条记录中可能存在字段重复,还存在字段数不同(有的字段有的记录里有有的记录没有)。要求将一条记录作为一行。
总共有33万条记录,怎么将其导入mysql数据库呢,最好是能有详细脚本实现数据的自动导入,求各位大神指导!
<SUBBEGIN
SI=123456789012345;
MS=1234567890123;
DE=TH11;
AM=DOTH;
CAT=COMMON;
BS=TH11&TH12&TH21&TH22;
SN=1234567890;
CF=C-A-P-N-NO-NO-N-Y-12345-NO-NO-NO-NO-NO-NO-NO-NO-NO-NO;
CF=C-A-P-N-NO-Y-N-Y-12345-NO-NO-NO-NO-NO-NO-NO-NO-NO-NO;
XT=4-241-33-1-NONE-2-3-9-31-2-0-u-2-3-2-1-150-151-254-7-4-18-2-104-104-PAID;
XT=2-241-33-1-NONE-2-3-9-31-2-0-p-2-3-2-1-150-151-254-7-4-18-2-104-104-PAID;
XT=5-241-33-1-NONE-2-3-9-31-2-0-t-2-3-2-1-150-151-254-7-4-18-2-104-104-PAID;
OP=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
FLAG=NULL-NULL-NULL-NULL-NULL-NULL-NULL;
MME=1234567890;
AY=NO;
<SUBEND
<SUBBEGIN
SI=123456789012543;
MS=8765432190123;
DE=TH11;
AM=DOTH;
CAT=COMMON;
BS=TH11&TH43&TH21&TH22;
SN=1234567866;
CF=C-A-P-N-NO-NO-N-Y-12345-NO-NO-NO-NO-NO-NO-NO-NO-NO-NO;
CF=C-A-P-N-NO-Y-N-Y-12345-NO-NO-NO-NO-NO-NO-NO-NO-NO-NO;
XT=4-241-33-1-NONE-2-3-9-31-2-0-u-2-3-2-1-150-151-254-7-4-18-2-104-104-PAID;
XT=2-241-33-1-NONE-2-3-9-31-2-0-p-2-3-2-1-150-151-254-7-4-18-2-104-104-PAID;
XT=5-241-33-1-NONE-2-3-9-31-2-0-t-2-3-2-1-150-151-254-7-4-18-2-104-104-PAID;
OP=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
FLAG=NULL-NULL-NULL-NULL-NULL-NULL-NULL;
<SUBEND
<SUBBEGIN
SI=123456789012543;
MS=8765432190123;
DE=TH11;
AM=DOTH;
CAT=COMMON;
DN=NO;
BS=TH11&TH43&TH21&TH22;
SN=1234567866;
XT=4-241-33-1-NONE-2-3-9-31-2-0-u-2-3-2-1-150-151-254-7-4-18-2-104-104-PAID;
XT=2-241-33-1-NONE-2-3-9-31-2-0-p-2-3-2-1-150-151-254-7-4-18-2-104-104-PAID;
XT=5-241-33-1-NONE-2-3-9-31-2-0-t-2-3-2-1-150-151-254-7-4-18-2-104-104-PAID;
XT=4-241-33-1-NONE-2-3-9-31-2-0-u-2-3-2-1-150-151-254-7-4-18-2-104-104-PAID;
OP=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
FLAG=NULL-NULL-NULL-NULL-NULL-NULL-NULL;
MME=1234567890;
AY=NO;
<SUBEND
。
每一条记录都是由<SUBBEGIN开始,<SUBEND结束,每条记录中可能存在字段重复,还存在字段数不同(有的字段有的记录里有有的记录没有)。要求将一条记录作为一行。
总共有33万条记录,怎么将其导入mysql数据库呢,最好是能有详细脚本实现数据的自动导入,求各位大神指导!
1、首先将所有的可能的字段全部找出来,假如有100个,然后根据这些字段建立一个表:text_table;
2、表建好之后,处理你的txt文件,将键值对的name去掉,只保留key。并且每个key之间用固定字符分隔(如 '|' 用竖线进行分隔),空的字段需要保留分隔符(如: || 表示在两个分隔符中间的字段为空)。
例如
SI=123456789012345;
MS=1234567890123;
DE=TH11;
AM=DOTH;
CAT=COMMON;处理之后为:
123456789012345|1234567890123|TH11|DOTH|COMMON3、假设处理好的文件为test.txt,则使用语句导入:
load data infile 'test.txt' into table test_table character set utf8 terminated by '|';
这个文件是你生成的还是已经存在的?
如果是你生成的,你可以按照要求生成新文件;
如果不是的话则需要你编写小程序来处理这个txt文件了。其他方法我暂时不知道,坐等其他人来回答。
这个是已有的文件,你说的编写小程序来处理,是指处理成适合导入的数据文本形式么
这个文件是你生成的还是已经存在的?
如果是你生成的,你可以按照要求生成新文件;
如果不是的话则需要你编写小程序来处理这个txt文件了。其他方法我暂时不知道,坐等其他人来回答。
CF=C-A-P-N-NO-Y-N-Y-12345-NO-NO-NO-NO-NO-NO-NO-NO-NO-NO;
XT=4-241-33-1-NONE-2-3-9-31-2-0-u-2-3-2-1-150-151-254-7-4-18-2-104-104-PAID;
XT=2-241-33-1-NONE-2-3-9-31-2-0-p-2-3-2-1-150-151-254-7-4-18-2-104-104-PAID;
XT=5-241-33-1-NONE-2-3-9-31-2-0-t-2-3-2-1-150-151-254-7-4-18-2-104-104-PAID;
这些算几条?字段名怎么算?如果没有的就按照空值插入?