在MYSQL中将逗号插入文本块

时间:2012-07-27 00:50:50

标签: mysql csv

目前我正在使用的文本文件恰好包含彼此相邻的所有数据,例如以下stringAB005103012ES-** OF**MID115748607.83

但是,我需要将其上传到MYSQL数据库,因此理想情况下,翻译后的格式会将代码用逗号分隔,如下所示:

AB00,51,0301,2,ES-**,  ,O,F,**,M,I,D,1,157486,07.83

我正在处理大约1400万行,并且每次逗号都会出现在相同的字符位置。因为第一个逗号会出现在每行的第4个字符之后,第二个逗号将出现在每行的第6个逗号之后,依此类推。

有没有办法在MYSQL中快速实现这一点,或者失败了,另一个可以轻松运行的简单程序?

2 个答案:

答案 0 :(得分:0)

您可以使用INFILE和SUBSTR(substring)命令。

http://dev.mysql.com/doc/refman/5.1/en/load-data.html

  

要加载具有固定宽度列的文本文件,我使用以下格式:

LOAD DATA LOCAL INFILE '<file name>' INTO TABLE <table>
(@var1)
SET Date=str_to_date(SUBSTR(@var1,3,10),'%m/%d/%Y'), 
Time=SUBSTR(@var1,14,8), 
WindVelocity=SUBSTR(@var1,26,5),
WindDirection=SUBSTR(@var1,33,3),
WindCompass=SUBSTR(@var1,38,3),
WindNorth=SUBSTR(@var1,43,6),
WindEast=SUBSTR(@var1,51,6),
WindSamples=SUBSTR(@var1,61,4);

答案 1 :(得分:0)

我会在记事本++中运行一个简单的宏