【问题标题】:Importing CSV files into MySql table with one column as name of CSV files将 CSV 文件导入 MySql 表,其中一列作为 CSV 文件的名称
【发布时间】:2013-08-21 07:07:17
【问题描述】:
我有 35 个 CSV 文件要导入 MYSQL 表(比如“测试”)。我想在“测试”表中创建一列(比如“文件名”)。此列将包含从中导入数据的 CSV 的名称。文件名是唯一的 ID,这就是为什么我想在表中获取文件名作为输入。
假设我有 CSV 文件,例如 X1.csv、X2.CSV、X3.csv .... X35.csv。我希望“测试”表中的一列作为“文件名”,这样“测试”表看起来像:
col1 -> a, b, c, d
col2 -> x, y, w, z
...
...
... ....
文件名 -> X1、X1、X2、X3
注意:我尝试在论坛上搜索此问题,但找不到任何合适的解决方案。另外我是MYSQL的新手,即使是微不足道的事情也请帮忙。
【问题讨论】:
标签:
mysql
csv
import
load-data-infile
【解决方案1】:
我不确定这正是您正在寻找的,但乍一看,您应该调查LOAD DATA INFILE 声明:
LOAD DATA INFILE 'X1.csv' INTO TABLE tbl_name -- Load the content of the CSV file
FIELDS TERMINATED BY ',' ENCLOSED BY '"' -- assuming fields separate by ",", enclosed by "'"
LINES TERMINATED BY '\r\n' -- assuming end-of-line being '\r\n'
IGNORE 1 LINES -- assuming first line is a header and should be ignored
SET file_name = 'X1'; -- force the column `file_name` to be the name of the file
请注意,使用这样的语句,每个字段 将进入表格的自己的列。并且 CSV 数据文件的每一行都会在表格中加载 一行。这意味着结果表中将有几行具有相同的文件名。实际上每条数据线一行。