mysql - 如何以 CSV 格式输出 MySQL 查询结果?

标签 mysql csv quotes

有没有一种简单的方法可以从 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

如果有很多列需​​要用引号括起来,或者结果中有引号需要转义,就会变得困惑。

最佳答案

来自 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 进程的用户必须具有写入所选目录的权限,否则命令将失败。

如果您想从远程服务器(尤其是托管或虚拟机,例如 HerokuAmazon RDS)将输出写入本地计算机,则此解决方案不适合。

关于mysql - 如何以 CSV 格式输出 MySQL 查询结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/356578/

相关文章:

php - 网站 : a user inputs text into a field - what do I have to watch out for?

php - GROUP_CONCAT 创建下拉列表

python - 在 Python 中合并两个 CSV 文件

mysql - MySQL 中何时使用单引号、双引号和反引号

javascript - onclick 中的字符串

mysql - 无法在 Mac OS X 上安装 MySQL

mysql MAX 查询不返回连接上的最新记录

python - 并行处理两个 CSV 文件

java - 带有两个 ArrayList 的 NoSuchElementException

sql - 使用 where 子句将 hive 数据输出到 csv