mysql - 将 CSV 导出到 MySQL

标签 mysql excel csv

我想做一些非常简单的事情。 我只想将 Excel 数据导出到 CSV,以便将其放入 Mysql 数据库中。

这是一个巨大的 Excel,所以我无法轻松管理异常。

我的问题是,当我将 xslx 保存到 csv 中时,仅当列中有逗号或已经有 "< 时,它才会将 " 分隔列 所以我的 CSV 中有类似的内容:

col1 | col2 | col3 => col1,col2,col3
col1 | co,l2| col3 => col1,"co,l2",col3 
col1 |"col"2| col3 => col1,"""col""2",col3 
col1 |      | col3 => col1,,col3

所以我尝试了很多方法将其转换为 SQL,但没有找到好的方法。

我在 Excel 2007 中工作,SQL 希望 CSV 具有此配置:

Columns separated with: ,
Columns enclosed with: "
Columns escaped with: \
Lines terminated with: auto

最佳答案

所以你想load your data使用

LOAD DATA FROM INFILE 'filename.csv'
INTO TABLE tablename
COLUMNS TERMINATED BY ','
        OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'

加载文件时,OPTIONALLY实际上会被忽略,或者换个更好的说法,即使你不指定OPTIONALLY,仍然会处理封闭的内容作为可选。这意味着列值可以用引号引起来,但不需要。请注意,据我所知。 Excel 不使用 \ 转义值。

如果您需要其他格式而不是导入 MySQL,那么您可以随后使用您喜欢的设置从 MySQL 重新导出数据。当writing a file ,省略 OPTIONALLY 将为每个值打开引号。

关于mysql - 将 CSV 导出到 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12774957/

相关文章:

vba - Excel VBA 用户窗体查询关闭 : Cancel not working

c# - RemoveDuplicates 函数 - 如何设置多列?

csv - 将CSV数据加载到多个表中

Python从列表列表中删除空元素

python - 为什么创建的 csv 文件会重复行以及如何将列表创建为列?

mysql - 获取单个分隔值中的一个值并获取 mySQL 中每一行的计数

javascript - datetimepicker 中时区的用途是什么

java - Apache POI 在空电子表格中看到列?

mysql - MySQL CentOS 6 无法设置根密码

java - 解析数据时出错[java.lang.String类型的值p无法转换为JSONObject