Глюк с SELECT ... OUTFILE

vovanium

Новичок
Глюк с SELECT ... OUTFILE

Никто не сталкивался? Почему-то в MySQL 5.1.39 (win x64), не экранирует спец. символы.

Для повторения
[sql]CREATE TABLE `test` (
`id` TINYINT(2) NOT NULL DEFAULT '0',
`txt` VARCHAR(50) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
)
ENGINE=MyISAM;

INSERT INTO test VALUES(1, 'line1\r\nline\t2\r\nline3');

SELECT * INTO OUTFILE 'g:/temp.sql' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM test
[/sql]
В результате получается файл
Код:
1,"line1
\
line	2
\
line3"
Вроде раньше нормально экранировались спец.символы, а сейчас добавляет бэкслэш перед переводами строк, но сами переводы строк остаются.
Добавление ESCAPED BY '\\' даёт тот же эффект.

-~{}~ 02.11.09 14:48:

Так что никто не сталкивался? Затестите если не сложно у себя

-~{}~ 28.11.09 03:50:

Так что никто не сталкивался? Затестите если не сложно у себя
 

vovanium

Новичок
Но странно, что раньше работало.
Ну она значительно раньше работало еще в версиях 4.1, потом долгое время не юзал, а это решил использовать, а тут такой облом.
 

vovanium

Новичок
svetasmirnova
Облом в том что не получится сделать для одной записи - одну строку. Разве что потом еще самому перебирать файл и заменять переводы на \n. Да и то что неправильно работает экранирование вообще теряется смысл в использовании SELECT ... OUTFILE
 

svetasmirnova

маленький монстрик
А зачем делать для одной записи одну строку? Этот файл не только для MySQL что ли? LOAD DATA INFILE с правильными FIELDS ESCAPED BY ... LINES TERMINATED BY ... прекрасно работает.
 
Сверху