この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()
呼び出しで正しく解釈されるように改行文字をエスケープする適切な方法は何ですか?私はこれをグーグルで検索しましたが、答えを見つけることができませんでした。