尝试使用以下查询将CSV数据上传到MYSQL表。它正在成功运行。 CSV文件有2000万个数据。但是现在我还有上传数据的问题。
我的CSV文件结构如下:
Name phone_no DND
xxx 99934034343 A
xxx 99934034345 D
xxx 99934034346 A
xxx 99934034347 D
我想仅使用以下命令插入活动的no“A”。
LOAD DATA LOCAL INFILE '/root/782012_23.csv'
INTO TABLE tbl_dndno
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\n';
像这样的预期记录
Name phone_no DND
xxx 99934034343 A
xxx 99934034346 A
答案 0 :(得分:2)
我猜你的命令运行正常,但用4行而不是预期的2填充你的表。
LOAD DATA IN FILE documentation似乎不支持您要求的内容,它只能逐行排除,因此如果您在创建此csv文件时有办法知道行号,则可以使用此功能。否则有2个解决方法:
您可以使用(在Linux上)
加载文件(在mysql之外)之前过滤文件grep "D$" /root/782012_23.csv > filteredfile; LOAD DATA LOCAL INFILE 'filteredfile' ...
或通过SQL加载后过滤:
your_command;mysql -u user -ppassword "DELETE FROM yourtable WHERE DND = 'A'";