错误1064从Excel导入数据,保留字符

时间:2014-03-28 22:12:53

标签: mysql excel mysql-error-1064

我试图通过MySQL for Excel将表格从Excel 2010导入MySQL 5.6。

错误地给了我一个MySQL Error 1064: You have an error in your SQL syntax...

导致错误的实际字符是导入的数据字段中的分号。当我替换了所有&#34 ;;"使用&#59#(但 &#59;)它运行良好。

如何在不更改数据的情况下导入这些文件?

1 个答案:

答案 0 :(得分:0)

我还没有找到使用MySQL for Excel的解决方案,但作为替换分号的替代方法,您可以将Excel工作表另存为CSV文件并使用LOAD DATA INFILE。以下是您可以在远程连接到数据库服务器的Windows计算机上使用的语法示例:

LOAD DATA LOCAL INFILE 'c:/path/to/my_excel_data.csv'
INTO TABLE my_table
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'

MySQL将在LOAD DATA语句中正确解释带有正斜杠的Windows路径。

请注意,LOCAL关键字指示MySQL客户端读取文件,因此在这种情况下" local"表示与客户端软件有关,而不是与数据库服务器有关。

如果您的电子表格中的任何单元格中都有不匹配的"字符,这也可能有点奇怪。例如,如果单元格包含here is " an unmatched double-quote,Excel将以双引号括起字符串,并在保存为CSV时将字符串中不匹配的双引号加倍,因此您得到的是"here is "" an unmatched double-quote"。我不确定MySQL在这种情况下会如何反应。