Mysql,Load Data Infile,只有特定的行

时间:2012-10-14 13:35:45

标签: mysql text-files

我正在努力将文本文件中的数据添加到mysql数据库中。在我的文本文件中,我有几十行,我想从中提取特定的一行(与表结构具有相似结构的那些)。

表格结构:

Name
Surname
Email
City
ZIP

文字档案:

_field1 >>> blah 
otherfield >>> blah
Name >>> John
anotherfield >>> blah
Email >>> john@doe.com
City >>> Portland
ZIP >>> 90210
yetanotherfield >>> foo

1 个答案:

答案 0 :(得分:0)

最好用其他语言解析文件,然后从那里调用INSERT,但由于文件中字段的顺序是可预测的,因此可以通过用户变量有类似的东西:

LOAD DATA INFILE '/path/to/file.txt' INTO TABLE my_table
    FIELDS TERMINATED BY '\n' LINES TERMINATED BY 0x1e
    (@dummy, @dummy, @name, @dummy, @email, @city, @zip, @dummy)
SET Name  = SUBSTRING(@name,  LOCATE(' >>> ', @name ) + 5),
    Email = SUBSTRING(@email, LOCATE(' >>> ', @email) + 5),
    City  = SUBSTRING(@city,  LOCATE(' >>> ', @city ) + 5),
    ZIP   = SUBSTRING(@zip,   LOCATE(' >>> ', @zip  ) + 5);