Я пытаюсь сделать экспорт csv должным образом в свою тестовую папку с переменным именем файла - я приближаюсь, но я думаю, что у меня есть . это до одной проблемы, прежде чем он работает Вот код до сих пор:MySQL: ДОПОЛНИТЕЛЬНО ЗАВЕРШЕНА '' 'Нарушение INTO OUTFILE Имя переменной
SET @q1 := CONCAT(
"SELECT *
FROM table
INTO OUTFILE '/SQLOut/test"
, DATE_FORMAT(NOW(),'%Y%m%d')
,".csv'"
, "FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'");
PREPARE s1 FROM @q1;
EXECUTE s1;
DROP PREPARE s1;
Как вы можете видеть, что я должен использовать prepared statements
для того, чтобы получить имя файла, чтобы включить текущую дату Эта часть работы - но если. Я хочу сделать это csv, после этого мне нужно включить материал, заканчивающийся «полями», и это то, что, как я думаю, нарушает его.
Я считаю, что это будет функционировать так, как предполагалось, если OPTIONALLY ENCLOSED BY '"'
не содержал "
- двойные кавычки после закрытия моего оригинала "
после CONCAT(
, а заключительная линия 'LINES TERMINATED BY '\n'");
обрезается, а MySQL запутывается.
Есть ли другой способ сделать это?
Я думаю, что это сделал, спасибо! Не могли бы вы объяснить, что вы сделали, я понял? Похоже, у них было много общего с этим. – Ryan
Потому что, если я добавляю заголовки столбцов или условия, где мне нужно использовать одну кавычку, тогда он разбивается так же, как и до – Ryan
@Ryan: Check [10.1.1 String Literals :: Table 10.1 Special Character Escape Sequences] (http: //dev.mysql.com/doc/refman/5.7/en/string-literals.html#character-escape-sequences). – wchiquito