sql >> Databáze >  >> RDS >> Mysql

Zpětné lomítko v souboru csv

Standardně LOAD DATA používá \ jako znak escape. Zvažte svůj vstup:

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

Tato sekvence \" se interpretuje jako doslovná neuzavřená uvozovka, nikoli zpětné lomítko následované uvozovkou.

nejlepší řešením je správně escapovat zpětná lomítka v souboru CSV, např.:

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

Pokud to nemůžete udělat, můžete zakázat escapování v příkazu LOAD DATA INFILE přidáním ESCAPED BY '' k prohlášení. To mu zabrání v rozpoznání \ jako znaku escape, ale mějte na paměti, že to zakáže i všechny ostatní sekvence escape ve vašem vstupním souboru. Tím se také importuje efgh\ , zpětné lomítko nebude ignorováno.

Při importu efgh\ je nepřijatelné, budete muset opravit formát svého vstupního souboru nebo odstranit koncové \ později ve vaší aplikační logice nebo pomocí jiného SQL dotazu.

Viz MySQL LOAD DATA INFILE Syntaxe pro více informací o možnostech formátu souboru.

Doufám, že to pomůže.




  1. Vložit více řádků jedním dotazem MySQL

  2. přidání jedinečného k existujícímu cizímu klíči

  3. Kartézské součiny a výběry v klauzuli od

  4. Automaticky aktualizujte materializovaný pohled pomocí pravidla nebo upozornění