将CSV导入mysql表

将csv文件上传到mysql表的最佳/最快方法是什么?我想将第一行数据用作列名。


发现这个:


如何将CSV文件导入MySQL表


但唯一的答案是使用GUI而不是shell?


慕姐8265434
浏览 590回答 3
3回答

慕标5832272

您可以直接将MYSQL链接到它并使用以下SQL语法上载信息,而不是编写脚本以从CSV文件中提取信息。要将Excel文件导入MySQL,请先将其导出为CSV文件。从生成的CSV文件中删除CSV标题以及Excel可能放在CSV文件末尾的空数据。然后,您可以通过运行以下命令将其导入MySQL表:load data local infile 'uniq.csv' into table tblUniq fields terminated by ','  enclosed by '"'  lines terminated by '\n'    (uniqName, uniqCity, uniqComments)正如读取:将CSV文件直接导入MySQL编辑对于您的情况,您需要先编写一个解释器,以查找第一行,并将它们指定为列名。编辑-2来自MySQL文档的LOAD DATA语法:该IGNORE number LINES选项可用于忽略文件开头的行。例如,您可以使用IGNORE 1 LINES跳过包含列名的初始标题行:LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test IGNORE 1 LINES;因此,您可以使用以下语句:LOAD DATA LOCAL INFILE 'uniq.csv'INTO TABLE tblUniqFIELDS TERMINATED BY ','    ENCLOSED BY '"'LINES TERMINATED BY '\n'IGNORE 1 LINES(uniqName, uniqCity, uniqComments)

哔哔one

这是一个简单的PHP命令行脚本,可以满足您的需求:<?php$host = 'localhost';$user = 'root';$pass = '';$database = 'database';$db = mysql_connect($host, $user, $pass);mysql_query("use $database", $db);/********************************************************************************/// Parameters: filename.csv table_name$argv = $_SERVER[argv];if($argv[1]) { $file = $argv[1]; }else {&nbsp; &nbsp; echo "Please provide a file name\n"; exit;&nbsp;}if($argv[2]) { $table = $argv[2]; }else {&nbsp; &nbsp; $table = pathinfo($file);&nbsp; &nbsp; $table = $table['filename'];}/********************************************************************************/// Get the first row to create the column headings$fp = fopen($file, 'r');$frow = fgetcsv($fp);foreach($frow as $column) {&nbsp; &nbsp; if($columns) $columns .= ', ';&nbsp; &nbsp; $columns .= "`$column` varchar(250)";}$create = "create table if not exists $table ($columns);";mysql_query($create, $db);/********************************************************************************/// Import the data into the newly created table.$file = $_SERVER['PWD'].'/'.$file;$q = "load data infile '$file' into table $table fields terminated by ',' ignore 1 lines";mysql_query($q, $db);?>它将基于第一行创建一个表,并将剩余的行导入其中。这是命令行语法:php csv_import.php csv_file.csv table_name

猛跑小猪

首先在数据库中创建一个表,其中包含csv文件中相同数量的列。然后使用以下查询LOAD DATA INFILE 'D:/Projects/testImport.csv' INTO TABLE cardinfoFIELDS TERMINATED BY ',' ENCLOSED BY '"'LINES TERMINATED BY '\r\n'
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MySQL