我有一个很大的 myfile.csv
文件,看起来像这样
从这个文件我想导入some
columns and obivously rows
and its relevant data
into mysql
database phpmyadmin
.
此文件位于我的本地
计算机上,我想导入一些列
、行
和数据
从那个文件到我的 live
数据库。
这是我在谷歌搜索后尝试过的。
我创建了一个包含以下列的表
id
name
email
然后尝试在我的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:
驱动器中。
我运行的查询
是否正确,路径
/tmp/myfile.csv
是否正确?
查询运行但数据没有加载到我的实时 DB
中,请帮助我,我花了一天半的时间解决这个问题。
我已阅读 this .
最佳答案
第 1 步:(首选)尝试只有要导入到数据库中的列(csv 文件)。
ex: 如果要导入 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 导入特定列。
ex: 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);
关于mysql - 如何将某些列及其数据从csv文件导入mysql phpmyadmin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57986432/