python mysql转义\n(简单语法错误)
我想使用这个python命令将mysql数据库导出到.csv文件中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
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来逃避:对不起,你没有忘记我在第二次阅读时看到的一切,但是你试过逃避前两个反斜杠吗?事实上,我忘记了。所以我认为你的答案是正确的。