我试图通过MySQL for Excel将表格从Excel 2010导入MySQL 5.6。
错误地给了我一个MySQL Error 1064: You have an error in your SQL syntax...
导致错误的实际字符是导入的数据字段中的分号。当我替换了所有&#34 ;;"使用;#
(但不 ;
)它运行良好。
如何在不更改数据的情况下导入这些文件?
答案 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在这种情况下会如何反应。