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

时间:2020-02-17 20:15:17

标签: mysql sql select xampp into-outfile

我有一个包含单个表的MySQL数据库,该表用作操作和查询数据集的临时存储点,并定期删除并替换为新数据。我想做的是从MySQL命令行导出数据以用于其他目的。我在Windows 10上将XAMPP Apache服务器软件包与phpMyAdmin一起使用。

我遇到的问题是我使用的INTO OUTFILE语法返回与'\ n'有关的错误。下面是语法示例:

SELECT *  
FROM tablename  
WHERE work_complete = 'Yes' 
INTO OUTFILE 'C:\file path for the file to be exported to\file_name.csv'   
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY "''"   
ESCAPED BY '\'  
LINES TERMINATED BY '\n'; 

我花了一些时间研究这一点,没有运气,甚至尝试使用

LINES TERMINATED BY '\r\n'

但错误仍然相同

ERROR: Unknown command '\''.
   ->     LINES TERMINATED BY '\r\n';

如果有人可以提供任何提示,将不胜感激。

2 个答案:

答案 0 :(得分:0)

问题不在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 to\file_name.csv'   
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY "'" ESCAPED BY '\\'  
LINES TERMINATED BY '\n'

答案 1 :(得分:0)

使用此

SELECT *  
FROM tablename  
#WHERE work_complete = 'Yes' 
INTO OUTFILE 'C:\file path for the file to be exported to\file_name.csv'   
FIELDS ENCLOSED BY '"' 
TERMINATED BY ';' 
ESCAPED BY '"' 
LINES TERMINATED BY '\r\n';

我使用了其他语法,并删除了mysql在那个地方不喜欢的选项