2012-02-06 3 views
2

일반적으로 mysql 서버에서 CSV 보고서를 내보내려면 서버에 쿼리를 실행하고 결과를 텍스트 파일에 저장 한 후 다음을 지정하여 Excel로 파일을 가져옵니다. 파이프로 구분 된 문자를 사용하여 열을 구분하십시오.SELECT mysql 쿼리를 사용하여 CSV 파일로 데이터 내보내기

MEDIUMTEEXT 쉼표 문자와 줄 바꿈 (\ n)이 포함 된 열 유형의 테이블에 대한 보고서를 실행해야합니다.

줄 바꿈 및 쉼표 기호로 인해 테이블 ​​레이아웃이 손상되었습니다.

SELECT `number`,REPLACE(`description`, ',', ''), mr.`dateInserted` FROM 
`mr` WHERE mr.dateInserted >= '2012-01-01' AND mr.dateInserted <= '2012-01-31' 

나는 어떻게이 결과에서 줄 바꿈을 제거 할 수 있습니다, 그러나, MySQL의 REPLACE 기능을 사용하여 쉼표 문제를 해결?

답변

1

CHAR (13)은 적어도 저항 :

SELECT 
    `number`, 
    REPLACE(REPLACE(REPLACE(`description`, ',', ''), CHAR(13),''), CHAR(10),''), 
    mr.`dateInserted` 
FROM 
    `mr` 
WHERE 
    mr.dateInserted >= '2012-01-01' 
AND 
    mr.dateInserted <= '2012-01-31' 
2

쿼리와 함께이 작업을 수행 할 수 있습니다. 예를 들면 다음과 같습니다.

SELECT 
    id, 
    name, 
    email 
INTO 
    OUTFILE '/tmp/result.csv' 
FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '"' 
ESCAPED BY ‘\\’ 
LINES TERMINATED BY '\n' 
FROM users WHERE 1 
+0

의 경로 기능을 대체 중첩되어보십시오 개행

캐리지 리턴

CHAR (10)이다 내가 시도한 것, 그 접근 방식의 문제는 파일을 로컬에 저장한다는 것이고, 아마존 RDS 인스턴스 – aporat

+0

아, 너무 나쁘다는 것입니다. – thenetimp

관련 문제