Mysql 使用过滤器上载csv文件

Mysql 使用过滤器上载csv文件,mysql,file-upload,csv,Mysql,File Upload,Csv,我正在尝试使用下面的查询将CSV数据上载到MYSQL表。它正在成功运行。具有2000万数据的CSV文件。但现在我上传数据还是有问题 我的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' IN

我正在尝试使用下面的查询将CSV数据上载到MYSQL表。它正在成功运行。具有2000万数据的CSV文件。但现在我上传数据还是有问题

我的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

我猜您的命令运行得很好,但是表中填充了4行,而不是预期的2行

似乎不支持您的要求,它只能逐行排除,因此,如果您在创建此csv文件时有办法知道行号,您可以使用此功能。否则,有两种解决方法:

您可以在加载文件之前对其进行过滤(在mysql之外)(在Linux上)

或通过SQL加载后进行筛选:

your_command;mysql -u user -ppassword "DELETE FROM yourtable WHERE DND = 'A'";

你有什么问题?出现了什么错误?我无法上传“A”记录。为什么?你期望什么,会发生什么,你看到了什么错误?我只想存储活动电话号码。这意味着我想在DND列“A”中插入phone no filter。对不起,您仍然没有回答我的问题:为什么它不工作?运行命令后,表中有什么内容?你看到错误了吗?谢谢你的帮助。我想你把否决票投给了我。我不能问问题。非常感谢。不,我没有否决这个问题,否则我不会费心回答,但你必须意识到,你没有说你的加载工作正常,而是加载了4行,而不是预期的2行(再次阅读你的问题),这会对我们有很大帮助,然后你,并防止了大量的反对票:)
your_command;mysql -u user -ppassword "DELETE FROM yourtable WHERE DND = 'A'";