问题

有一种方法可以从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';

使用此命令不会导出列名称.




相关问题推荐