如何从 MySQL 命令行导出 CSV 文件



我有一个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'

最新更新