2010-12-28 38 views
6

Tôi khá thiếu kinh nghiệm trong SQL, vì vậy cần có giải pháp đơn giản cho vấn đề của tôi: Tôi đang chọn một bảng thành tệp được phân cách bằng dấu phẩy và cột loại TEXT có các ký tự dòng mới, vì vậy khi tôi cố gắng nhập csv của mình vào Excel, nó tạo ra các hàng riêng biệt mỗi phần văn bản theo một ký tự dòng mới.xuất một bảng trong MySQL với các cột có ký tự dòng mới

Đây là câu hỏi của tôi:

SELECT * FROM `db`.`table` INTO OUTFILE 'c:\\result.txt' FIELDS TERMINATED BY ',' 
ESCAPED BY '\\' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\r\n' ; 

và sau đó trong Excel tôi nhập khẩu như một dấu phẩy tập tin tách ra gây vấn đề cho cột đó có văn bản với các nhân vật xuống dòng.

bất kỳ trợ giúp nào được đánh giá cao!

Trả lời

4

Chỉ cần đính kèm mọi thứ trong dấu ngoặc kép có thể.

SELECT * FROM db.table INTO OUTFILE 'c:/result.txt' FIELDS TERMINATED BY ',' ESCAPED BY '\\' ENCLOSED BY '"' LINES TERMINATED BY '\r\n'; 
+0

trong trường hợp này nếu tôi có một trường văn bản có giá trị "abc, BCD" lĩnh vực văn bản này sẽ được phân tích thành hai văn bản các lĩnh vực abc và BCD vì có một dấu phẩy bên trong. – Lenik

+1

dấu phẩy bên trong trường trích dẫn được trích dẫn phải được bỏ qua bởi excel. Khi nhập vào excel, hãy đảm bảo rằng bạn có bộ định dạng văn bản được đặt thành " – DeveloperChris

1

Novikov là chính xác nhưng bạn cũng có thể thoát khỏi các ký tự dòng mới trong khi xuất.

SELECT REPLACE(`fieldname1`,'\n','\\n'),`fieldname2` FROM db.table INTO OUTFILE 'c:/result.txt' FIELDS TERMINATED BY ',' ESCAPED BY '\\' ENCLOSED BY '"' LINES TERMINATED BY '\r\n'; 

Điều này sau đó sẽ thay thế tất cả các ký tự dòng mới bằng chuỗi văn bản '\ n' Đây có thể không phải là thứ bạn muốn ở đầu ra.

DC

Các vấn đề liên quan