프로그래밍 언어/Database

MySQL 쿼리 결과를 CSV 형식으로 출력하는 방법

Rateye 2021. 7. 5. 10:33
728x90
반응형

 

질문 : MySQL 쿼리 결과를 CSV 형식으로 출력하는 방법은 무엇입니까?

Linux 명령 줄에서 MySQL 쿼리를 실행하고 결과를 CSV 형식으로 출력하는 쉬운 방법이 있습니까?

지금 내가하고있는 일은 다음과 같습니다.

mysql -u uid -ppwd -D dbname << EOQ | sed -e 's/        /,/g' | tee list.csv
select id, concat("\"",name,"\"") as name
from students
EOQ

따옴표로 묶어야하는 열이 많거나 이스케이프해야하는 결과에 따옴표가 있으면 지저분 해집니다.

답변

http://www.tech-recipes.com/rx/1475/save-mysql-query-results-into-a-text-or-csv-file/에서

SELECT order_id,product_name,qty
FROM orders
WHERE foo = 'bar'
INTO OUTFILE '/var/lib/mysql-files/orders.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';

참고 : 해당 구문은

SELECT order_id,product_name,qty
INTO OUTFILE '/var/lib/mysql-files/orders.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM orders
WHERE foo = 'bar';

최신 버전의 MySQL에서.

이 명령을 사용하면 열 이름이 내보내지지 않습니다.

또한 /var/lib/mysql-files/orders.csv 는 MySQL을 실행 하는 서버에 있습니다. MySQL 프로세스가 실행되는 사용자는 선택한 디렉토리에 쓸 수있는 권한이 있어야합니다. 그렇지 않으면 명령이 실패합니다.

원격 서버 (특히 Heroku 또는 Amazon RDS와 같은 호스팅 또는 가상화 시스템)에서 로컬 시스템에 출력을 작성하려는 경우이 솔루션은 적합하지 않습니다.

출처 : https://stackoverflow.com/questions/356578/how-to-output-mysql-query-results-in-csv-format
728x90
반응형