首页 > 解决方案 > 如何将某些列及其数据从 csv 文件导入 mysql phpmyadmin

问题描述

我有一个myfile.csv看起来像这样的大文件

在此处输入图像描述

从这个文件中,我想将some列和明显rows及其相关data导入到mysql数据库phpmyadmin中。

该文件位于我的local计算机上,我想从该文件中导入一些columns,rowsdata我的live数据库中。

这是我在谷歌搜索后尝试过的。

table我用以下列创建了一个

id name email

然后尝试query在我的live数据库中运行以下内容

LOAD DATA LOCAL INFILE '/tmp/myfile.csv' INTO TABLE registration_no
FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'
(@col1,@col2,@col3) set id=@col1,name=@col2,email =@col3

笔记

myfile.csv位于我的电脑上,在C:驱动器中。

我运行正确吗querypath /tmp/myfile.csv是正确的吗?

查询运行但数据没有加载到我的生活DB中,请帮助我,我花了一天半的时间解决这个问题。

我读过这个

标签: mysql

解决方案


第 1 步:(首选)尝试只有要导入数据库的列(csv 文件)。

例如:如果要导入 3 列,则myfile.csv删除其他不必要的列

第 2 步:由于您使用的是 Windows 系统,请确保在加载文件时正确指定路径。

第 3 步:如果您的 csv 有要跳过的标题,请使用IGNORE 1 LINES.

因此,查询将如下所示。

LOAD DATA LOCAL INFILE 'C:/myfile.csv' INTO TABLE registration_no
FIELDS TERMINATED BY ','
ENCLOSED BY '"' 
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(id, name, email);

第 4 步:(可选)如果您只需要从 csv 导入特定列。

例如: csv 包含 5 列,id, name, reg_no, dob, email,但只需要导入 3 列id, name, email。只需将该列插入到一个不存在的变量中。

那么查询应该是这样的

LOAD DATA LOCAL INFILE 'C:/myfile.csv' INTO TABLE registration_no
FIELDS TERMINATED BY ','
ENCLOSED BY '"' 
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES #to remove first `n` rows usually used to remove header of a file.
(id, name, @dummy, @dummy, email);

推荐阅读