当前位置: 首页 > 面试题库 >

将CSV导入mysql表

司空皓
2023-03-14
问题内容

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

发现了这一点:

如何将CSV文件导入MySQL表

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


问题答案:

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

要将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 tblUniq
FIELDS TERMINATED BY ','
    ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(uniqName, uniqCity, uniqComments)


 类似资料:
  • 问题内容: 我创建了一个数据库和一个表。我还创建了所有需要的字段。我创建了46个字段,其中一个是该行的ID。CSV不包含ID字段,也不包含列的标题。我对所有这些都是陌生的,但一直在努力解决。我不是在这里懒惰地寻求答案,而是在寻找方向。 我试图弄清楚如何导入CSV,但是让它开始从第二个字段开始导入数据,因为我希望auto_increment将填充ID字段,这是我创建的第一个字段。 我没有运气就尝试了

  • 问题内容: 我想将csv文件导入到mysql中。 http://www.tech- recipes.com/rx/2345/import_csv_file_direct_into_mysql/ 但是csv中的列名称与数据库表中的列名称不同,我该怎么办?我想以编程方式来做。 问题答案: 您可以创建一个脚本来解析您的csv文件并将数据放入db。 就像是:

  • 问题内容: 更新 在我发布此问题之后的第二秒,由于对结果查询的语法突出显示,我看到了出了什么问题:该字符串未以闭合斜线开头。现在我将其更改为: 但是,这提出了一个新问题:为什么PDO对象没有为此向我吐出错误?手动执行查询肯定会返回一个错误,指出没有名为的字段,最后是逗号。为什么我没有收到任何错误?有任何想法吗? PS:关于解决我的问题的SO语法突出显示方面有什么想法吗?:-) 我将原始问题留作参考

  • 问题内容: 我有以下结构的csv文件: 使用以下MySQL函数如何导入MySQL表的第一和第三列: 我为我的英语道歉! 提前致谢 ! 问题答案: 您可以指定列,并将不需要的列标记为“ @dummy”。 替换,并且只要你喜欢。要设置不在数据文件中的其他列,您可以这样做: 作为进一步的参考,我建议您看一下MySQL参考。

  • 问题内容: 我正在尝试将很大的.csv文件(〜4gb)导入mysql。我正在考虑使用phpmyadmin,但是您的最大上传大小为2mb。有人告诉我,我必须使用命令行。 我打算按照以下说明将其导入:http : //dev.mysql.com/doc/refman/5.0/en/mysqlimport.html#c5680 将.csv表中的第一行设置为mysql表中的列名的命令是什么?该选项可通过p

  • 问题内容: 我正在做“elasticsearch入门”教程。不幸的是,本教程没有介绍将数据库导入Elasticsearch的第一步。 我用谷歌搜索找到了解决方案,但不幸的是它无法正常工作。这是我要实现的目标和拥有的目标: 我有一个要导入的数据文件(简化了) 我想使用导入。经过互联网研究后,我得到以下配置: 我在指定文档类型时遇到了麻烦,因此一旦导入数据,便导航到http:// localhost: