将CSV导出到MySQL
我想做一些非常简单的事情。 我只想将excel数据导出到CSV,以便将其放入Mysql数据库中 这是一个巨大的excel,因此我无法轻松管理异常 我的问题是,当我将xslx保存到csv中时,仅当列中有逗号或已经有一个“”时,才会将将CSV导出到MySQL,mysql,excel,csv,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 =>
”置于分隔列的位置,因此我的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
所以你想用
加载文件时,可选的
实际上会被忽略,或者用更好的方式表达它,即使您没有指定可选的
,封装仍将被视为可选的。这意味着列值可以用引号括起来,但不必用引号括起来。注意,afaik。Excel不使用\
来转义值
如果除了导入MySQL之外,您还需要其他格式,那么您可以在以后使用您喜欢的设置从MySQL重新导出数据。如果有选择地省略,
将为每个值打开引号。MySQLLOAD DATA LOCAL INFLILE
有一个列,列之间由
参数分隔,您可以使用该参数,而无需进行转换。如果使用正确的参数,则MySQL不应查看引号内的逗号,因为该参数完全正常/sane CSV规则。如果没有理由添加引号,那么就没有了。(如果数据包含引号或逗号-分隔符,则必须添加引号。请参阅相关的wikipedia文章。)谢谢。它帮助了我。由于凯文的解决方案,我成功了。
LOAD DATA FROM INFILE 'filename.csv'
INTO TABLE tablename
COLUMNS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'