Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从CSV选择性导入到MySQL_Mysql_Csv_Import - Fatal编程技术网

从CSV选择性导入到MySQL

从CSV选择性导入到MySQL,mysql,csv,import,Mysql,Csv,Import,如何将大型csv文件中的某些行导入MySQL表。 我知道如何导入所有数据,但我的问题是我的csv文件太大,我不需要它拥有的所有数据 我只想导入列_X具有以下任一值的行[VALID1,VALID2,VALID3] 应忽略列_x中具有无效值的所有其他行 有人能帮我吗? 非常感谢。您可以使用以下内容: LOAD DATA INFILE 'myfile.csv' INTO mytable (column1, @dummy, @dummy, column2, column3) 这将只将第1列、第4列和

如何将大型csv文件中的某些行导入MySQL表。 我知道如何导入所有数据,但我的问题是我的csv文件太大,我不需要它拥有的所有数据

我只想导入列_X具有以下任一值的行[VALID1,VALID2,VALID3] 应忽略列_x中具有无效值的所有其他行

有人能帮我吗?
非常感谢。

您可以使用以下内容:

LOAD DATA INFILE 'myfile.csv'
INTO mytable
 (column1, @dummy, @dummy, column2, column3)

这将只将第1列、第4列和第5列加载到数据库中。但你需要知道你的好专栏在哪一个位置领先。

你可以使用以下方法:

LOAD DATA INFILE 'myfile.csv'
INTO mytable
 (column1, @dummy, @dummy, column2, column3)
这将只将第1列、第4列和第5列加载到数据库中。但你需要知道你的好专栏在哪个位置领先。

解决方案来自:

如果需要将数据附加到现有表中,可以创建一个新的临时表并如上所述将数据导入其中,然后插入到旧的_表中,从_表中选择*

解决方案来自:


如果需要将数据附加到现有表中,可以创建一个新的临时表并如上所述将数据导入其中,然后插入到旧的_表中,从_表中选择*

您无法使用加载数据填充过滤掉行,因此可以通过预处理CSV文件过滤掉这些行,或者将数据加载到临时表中,并将相关行插入主表中,例如

CREATE TEMP TABLE import LIKE my_main_table;
LOAD DATA LOCAL INFILE 'myfile.csv' into import;
INSERT INTO my_main_table SELECT * FROM import
                          WHERE column_x IN(VALID1, VALID2, VALID3)

您不能使用LOAD DATA INFILE筛选出行,因此可以通过预处理CSV文件来筛选出这些行,或者将数据加载到临时表中,并将相关行插入主表中,例如

CREATE TEMP TABLE import LIKE my_main_table;
LOAD DATA LOCAL INFILE 'myfile.csv' into import;
INSERT INTO my_main_table SELECT * FROM import
                          WHERE column_x IN(VALID1, VALID2, VALID3)
如果在CSV中发现重复的键,则忽略行。 field1、field2、@pk、field3、@columnx是CSV列到值的映射。具体来说:CVS的第一个字段进入列字段1,CVS的第二个字段进入列字段2,CSV的第三个字段进入变量@pk,等等。 pk=将名为pk的列设置为=后面表达式的结果。在这种情况下,如果在CSV的第五列中遇到一个有效值,它会将列pk设置为NULL。否则,它会将该列设置为“键” 如果pk是保存主键的列,表中已经有一条记录,主键为“key”,并且主键为“auto_increment”的列设置为“auto_increment”,则此操作有效

如果在CSV中发现重复的键,则忽略行。 field1、field2、@pk、field3、@columnx是CSV列到值的映射。具体来说:CVS的第一个字段进入列字段1,CVS的第二个字段进入列字段2,CSV的第三个字段进入变量@pk,等等。 pk=将名为pk的列设置为=后面表达式的结果。在这种情况下,如果在CSV的第五列中遇到一个有效值,它会将列pk设置为NULL。否则,它会将该列设置为“键” 如果pk是保存主键的列,表中已经有一条记录,主键为“key”,并且主键为“auto_increment”的列设置为“auto_increment”,则此操作有效