我有一个MySQL数据库,其中包含一个表,该表用作操作和查询数据集的临时存储点,并定期删除并替换为新数据。我希望能够做的是从MySQL命令行导出数据以用于其他目的。我在Windows 10上使用带有phpMyAdmin的XAMPP Apache服务器包。
我遇到的问题是我使用的 INTO OUTFILE 语法返回与""相关的错误。下面是语法示例:
SELECT *
FROM tablename
WHERE work_complete = 'Yes'
INTO OUTFILE 'C:file path for the file to be exported tofile_name.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY "''"
ESCAPED BY ''
LINES TERMINATED BY 'n';
我花了一些时间研究这个没有任何运气,我什至尝试使用
LINES TERMINATED BY 'rn'
但错误保持不变
ERROR: Unknown command '''.
-> LINES TERMINATED BY 'rn';
如果有人可以提供任何提示,将不胜感激。
使用这个
SELECT *
FROM tablename
#WHERE work_complete = 'Yes'
INTO OUTFILE 'C:file path for the file to be exported tofile_name.csv'
FIELDS ENCLOSED BY '"'
TERMINATED BY ';'
ESCAPED BY '"'
LINES TERMINATED BY 'rn';
我像你一样使用了其他一些语法,并删除了mysql在那个地方不喜欢的可选
问题不在于LINES TERMINATED BY
,而在于ESCAPED BY
。
这:
ESCAPED BY ''
是无效的语法,因为反斜杠被解释为以下引号的转义字符。一个体面的文本编辑器应该让你看到这一点。
您需要转义反斜杠,如下所示:
ESCAPED BY '\'
或者,您也可以使用'b'
:
ESCAPED BY 'b'
另一个问题是,OPTIONALLY ENCLOSED
只接受一个字符,而你给它两个单引号。
在您的查询中:
SELECT * FROM tablename WHERE work_complete = 'Yes'
INTO OUTFILE 'C:file path for the file to be exported tofile_name.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY "'" ESCAPED BY '\'
LINES TERMINATED BY 'n'