sql >> Database >  >> RDS >> Mysql

Backslash in het csv-bestand

LOAD DATA gebruikt standaard \ als escape-teken. Denk aan uw input:

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

Die reeks \" wordt geïnterpreteerd als een letterlijk niet-omsluitend aanhalingsteken, niet als een backslash gevolgd door een aanhalingsteken.

De beste oplossing is om backslashes correct te escapen in uw CSV-bestand, bijvoorbeeld:

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

Als u dat niet kunt doen, kunt u escaping uitschakelen in uw LOAD DATA INFILE-instructie door ESCAPED BY '' toe te voegen. naar de verklaring. Dat zal voorkomen dat \ als een escape-teken wordt herkend, maar houd er rekening mee dat het alle andere escape-reeksen in uw invoerbestand ook uitschakelt. Dat zal ook efgh\ import importeren , wordt de backslash niet genegeerd.

Bij het importeren van efgh\ is onaanvaardbaar, dan moet u de indeling van uw invoerbestand corrigeren of de volgende \ later in uw toepassingslogica of met een andere SQL-query verwijderen.

Zie MySQL LOAD DATA INFILE-syntaxis voor meer informatie over opties voor bestandsindelingen.

Ik hoop dat dat helpt.




  1. Foreign key op myisam tafel alternatief?

  2. MySQL-fout:kan bestand '/var/mysqltmp/#sql_1fbd_0.MYI' niet maken/schrijven naar bestand '/var/mysqltmp/#sql_1fbd_0.MYI' (Errcode:13)

  3. Hoe coderingswaarschuwing te vermijden bij het invoegen van binaire gegevens in een blobkolom in MySQL met Python 2.7 en MySQLdb

  4. Mysql Vind ontbrekende perioden