相关疑难解决方法(0)

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

有没有一种简单的方法可以从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
Run Code Online (Sandbox Code Playgroud)

当有很多列需​​要用引号括起来,或者结果中有引号需要转义时,它会变得混乱.

mysql csv quotes

1118
推荐指数
24
解决办法
113万
查看次数

将MySQL命令行结果的输出格式更改为CSV

我想在命令行上从查询输出中获取无头CSV数据.我在与MySQL服务器不同的机器上运行此查询,因此所有使用"INTO OUTFILE"的Google答案都不好.

所以我跑了mysql -e "select people, places from things".那输出看起来像这样的东西:

+--------+-------------+
| people | places      |
+--------+-------------+
|   Bill | Raleigh, NC |
+--------+-------------+
Run Code Online (Sandbox Code Playgroud)

嗯,这不好.但是,嘿,看!如果我只是把它管道到任何东西,它会把它变成一个以制表符分隔的列表:

people  places
Bill    Raleigh, NC
Run Code Online (Sandbox Code Playgroud)

那更好 - 至少它是以编程方式解析的.但我不想要TSV,我想要CSV,而且我不想要那个标题.我可以摆脱标题mysql <stuff> | tail -n +2,但这是一个麻烦我想避免如果MySQL只有一个标志来省略它.而且我不能用逗号替换所有选项卡,因为它不处理带有逗号的内容.

那么,我怎样才能让MySQL省略标题并以CSV格式提供数据?

mysql csv command-line

57
推荐指数
4
解决办法
10万
查看次数

标签 统计

csv ×2

mysql ×2

command-line ×1

quotes ×1