python mysql转义\n(简单语法错误)

python mysql转义\n(简单语法错误),python,mysql,syntax-error,Python,Mysql,Syntax Error,我想使用这个python命令将mysql数据库导出到.csv文件中 cursor.execute("""SELECT * INTO OUTFILE 'NullServids.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\\n' FROM accounts WHERE srvid is NULL""") 但它返回以下语法错误 _mysql_excepti

我想使用这个python命令将mysql数据库导出到.csv文件中

cursor.execute("""SELECT * INTO OUTFILE 'NullServids.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\\n' FROM accounts WHERE srvid is NULL""")
但它返回以下语法错误

_mysql_exceptions.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\\n' FROM accounts WHERE srvid is NULL' at line 1")
因此,我尝试不转义换行符,当我复制并粘贴到MySQL中时,它显然起作用

cursor.execute("""SELECT * INTO OUTFILE 'NullServids.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n' FROM accounts WHERE srvid is NULL""")
但我有一个错误:

_mysql_exceptions.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' FROM accounts WHERE srvid is NULL' at line 2")

所以我的问题是,什么是转义换行符的正确方法,以便在
cursor.execute()
调用中正确解释换行符?我在谷歌上搜索了一下,找不到答案,这让我很尴尬。

你忘了反斜杠在字符串中转义,因此\没有任何意义。 如果您试图打印您正在使用的字符串,您将看到带有反斜杠的位置是空的

请尝试以下方法:

"""SELECT * INTO OUTFILE 'NullServids.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\\\' LINES TERMINATED BY '\\n' FROM accounts WHERE srvid is NULL"""

应该是“\n”。您是否尝试过简化查询,以确保以节结尾的
行确实存在问题?例如,在选择后尝试将
从..WHERE..
移动,暂时将
关闭到
。然后一点一点地加进去。看起来我也可以用SE来逃避:对不起,你没有忘记我在第二次阅读时看到的一切,但是你试过逃避前两个反斜杠吗?事实上,我忘记了。所以我认为你的答案是正确的。