使用直接LOAD DATA INFILE和set表达式
LOAD DATA INFILE 'FILENAME.CSV'
INTO TABLE TABLENAME
(@f1, @f2, @f3)
FIELDS TERMINATED BY ','
LINES TERMINATED BY ';'
SET `field1` = SUBSTRING(@f1, LOCATE('name=', @f1)+5), `field2` = SUBSTRING(@f2, LOCATE('age=', @f2)+4), `field3` = SUBSTRING(@f3, LOCATE('hoby=', @f3)+5)
注意我还没有测试过.所以可能会有错误.请根据您的需要进行调整.
使用awk作为预处理器
使用awk预处理csv文件并调用LOAD DATA INFILE
awk -F[,=\;] '{print $2","$4","$6}' < FILENAME.CSV > PROPER.CSV
现在在mysql中,
LOAD DATA INFILE 'PROPER.CSV'
INTO TABLE TABLENAME
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'