LOAD DATA INFILE
также поддерживает пункт FIELDS ESCAPED BY
, который позволяет определить, какой характер MySQL использует для выявления специальных символов в строку, например, одинарные кавычки внутри одинарных кавычках строки или символы табуляции (как у вас есть в вашем FIELDS TERMINATED BY
, представленный как \t
).
Значение по умолчанию для FIELDS ESCAPED BY
: \
, обратная косая черта, поэтому ваши символы пути интерпретируются MySQL и затем игнорируются; экранирование неспециального символа просто возвращает этот символ, поэтому \1
просто возвращает 1
. Однако у вас возникнут проблемы с именами файлов, такими как c:\tmp\newfile
, потому что оба \t
и \n
интерпретируются как специальные символы.
Если вы оставите символ пробела пустым, выполнив FIELDS ESCAPED BY ''
, ваш импорт не будет интерпретировать обратную косую черту, но у вас могут быть другие проблемы, если в импорте есть символы, требующие экранирования. Вы узнаете об этом, узнав, какой escape-символ использовался для генерации текстового файла, и вы можете использовать его в своем предложении FIELDS ESCAPED BY
.
Да, подтверждено, с: LOAD DATA LOCAL INFILE 'c: /mydatabase.txt' INTO TABLE mytable FIELDS TERMINATED BY '\ t' ESCAPED BY '' Я могу импортировать путь к файлу с помощью "\" правильно. Благодарю. – user2571369