Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将CSV导出到MySQL_Mysql_Excel_Csv - Fatal编程技术网

将CSV导出到MySQL

将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 =>

我想做一些非常简单的事情。 我只想将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
所以你想用

加载文件时,
可选的
实际上会被忽略,或者用更好的方式表达它,即使您没有指定
可选的
,封装仍将被视为可选的。这意味着列值可以用引号括起来,但不必用引号括起来。注意,afaik。Excel不使用
\
来转义值


如果除了导入MySQL之外,您还需要其他格式,那么您可以在以后使用您喜欢的设置从MySQL重新导出数据。如果有选择地省略
将为每个值打开引号。

MySQL
LOAD 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'