2013-04-03 2 views
3

схемы для моих смс таблицы есть. - смс (ид, MobileNumber, текст)LOAD DATA INFILE, когда поля реального спаслось поля содержат п и »

где текст типа текста

Один из строки имеет под текстом -

Foo bar\nLorem ipsum dolor sit amet.\n\nconsectetur adipisicing elit, said:\n\n\" sed do eiusmod tempor incididunt ut labore et dolore magna aliqua don\'t \" 

Когда я запускаю этот запрос -

select 'SMS ID', 'Mobile Number', 'SMS Text' 
union 
select id, ifnull(mobileNumber, 'Not Available'), text 
from sms 
into outfile '/tmp/SMSUsage.csv' 
fields terminated by ',' enclosed by '"' 
lines terminated by '\n'; 

и открыть файл CSV в Libreoffice, я вижу текст в более чем одной клетке, как -

Foo bar\\\\nLorem ipsum dolor sit amet.\\\\n\\\\nconsectetur adipisicing elit, said:\n\n\ 

в одном столбце, а затем каждое слово после выше предложений в отдельную колонку.

Также почему он помещает три дополнительных '\' перед '\ n'? Как получить текст в одной ячейке?

+0

Имеет ли значение, какую программу вы используете, чтобы открыть файл? Вы пробовали строки, завершенные '\ r \ n'; ? – bestprogrammerintheworld

+0

Да. попытался поставить '\ r \ n'; Это тоже не сработало. Я думаю, что проблема заключается в том, что «закрыто», потому что когда «происходит», он прерывает поток. – Hussain

+0

\ n сбегает к \\ n, и похоже, что его ускользнули на \\\\ n – rob

ответ

1

Попробуйте это:

SELECT 'SMS ID', 'Mobile Number', 'SMS Text' 
UNION 
    SELECT id, IFNULL(mobileNumber, 'Not Available'), text 
    FROM sms 
INTO OUTFILE '/tmp/SMSUsage.csv' 
FIELDS TERMINTATED by ',' 
OPTIONALLY ENCLOSED BY '"' 
ESCAPED BY '"' 
LINES TERMINATED BY '\n'; 
+0

Отлично. Это решило проблему Спасибо. – Hussain