Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Backslash in der CSV-Datei

Standardmäßig verwendet LOAD DATA \ als Fluchtzeichen. Betrachten Sie Ihre Eingabe:

"abcd", "efgh\", "ijk"

Diese Sequenz \" wird als wörtliches, nicht einschließendes Anführungszeichen interpretiert, nicht als umgekehrter Schrägstrich gefolgt von einem Anführungszeichen.

Das Beste Die Lösung besteht darin, Backslashes in Ihrer CSV-Datei richtig zu maskieren, z. B.:

"abcd", "efgh\\", "ijk"

Wenn dies nicht möglich ist, können Sie das Escaping in Ihrer LOAD DATA INFILE-Anweisung deaktivieren, indem Sie ESCAPED BY '' hinzufügen zur Aussage. Dadurch wird verhindert, dass es \ als Escape-Zeichen erkennt, aber denken Sie daran, dass es auch alle anderen Escape-Sequenzen in Ihrer Eingabedatei deaktiviert. Dadurch wird auch efgh\ importiert , der Backslash wird nicht ignoriert.

Beim Importieren von efgh\ nicht akzeptabel ist, müssen Sie das Format Ihrer Eingabedatei korrigieren oder das nachgestellte \ später in Ihrer Anwendungslogik oder mit einer anderen SQL-Abfrage entfernen.

Siehe MySQL LOAD DATA INFILE-Syntax für weitere Informationen zu Dateiformatoptionen.

Hoffe das hilft.