mysql - 如何将某些列及其数据从csv文件导入mysql phpmyadmin

标签 mysql

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

enter image description here

从这个文件我想导入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/

相关文章:

php - laravel队列:work out of memory

mysql - 为什么所有的写操作都必须交给主控器,为什么写给从属器没有意义?

php - 小于运算符给出奇怪的结果

php - 为每个人显示相同的 Javascript 和 PHP 倒数计时器

php - 使用列标题对查询结果进行排序

mysql - WPDB : cannot create multiple database tables with plugin installation

mysql - 将mysql转换为特定格式的xml文件的正确方法

mysql - 如何恢复测试服务器数据库中的数据库备份?

php - 为什么我的 float 大于 1 时在 MYSQL 中存储为 .9999?

php - 试图获取非对象代码点火器的属性