mysql - 如何将 CSV 文件导入 MySQL 表

标签 mysql csv import load-data-infile database-table

如何将 CSV 文件导入 MySQL 表?我想将第一行数据用作列名。

我读过 How do I import CSV file into a MySQL table? ,但唯一的答案是使用 GUI 而不是 shell?

最佳答案

您可以直接将 MYSQL 链接到它并使用以下 SQL 语法上传信息,而不是编写脚本来从 CSV 文件中提取信息。

要将 Excel 文件导入 MySQL,请先将其导出为 CSV 文件。从生成的 CSV 文件中删除 CSV header 以及 Excel 可能放在 CSV 文件末尾的空数据。

然后您可以通过运行将其导入 MySQL 表:

load data local infile 'uniq.csv' into table tblUniq fields terminated by ','
  enclosed by '"'
  lines terminated by '\n'
    (uniqName, uniqCity, uniqComments)

如继续阅读:Import CSV file directly into MySQL

编辑

对于您的情况,您需要先编写一个解释器,用于查找第一行并将它们分配为列名。


EDIT-2

来自 MySQL 文档 on LOAD DATA syntax :

The IGNORE number LINES option can be used to ignore lines at the start of the file. For example, you can use IGNORE 1 LINES to skip over an initial header line containing column names:

LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test IGNORE 1 LINES;

因此,您可以使用以下语句:

LOAD DATA LOCAL INFILE 'uniq.csv'
INTO TABLE tblUniq
FIELDS TERMINATED BY ','
    ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(uniqName, uniqCity, uniqComments)

关于mysql - 如何将 CSV 文件导入 MySQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11077801/

相关文章:

c# - 将两个csv文件导入mysql数据库

java - 让JTable只显示添加的行

mysql - 获取项目计数列表

javascript - 在 d3.js 中从 csv 创建树层次结构

python - 在将 csv 导入 db 之前跳过第一行并删除某些字符

mysql - 使用 putty 将 sql.gz 文件导入并插入数据库

php - Mysql 两张表,从一张表中选取所有值,比较是否存在,然后返回一个随机值

php - 如何进行参数化查询

csv - 是否可以在 csv 中包含列名,并在 Snowflake 中将其复制到语句中?

haskell - 导入单子(monad)不起作用(泄漏的 haskell 平台)