我有一个包含单个表的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';
如果有人可以提供任何提示,将不胜感激。
答案 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在那个地方不喜欢的选项