相关疑难解决方法(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万
查看次数

最快的方法是将制表符分隔的文件转换为linux中的csv

我有一个制表符分隔的文件,有超过2亿行.linux中将此转换为csv文件的最快方法是什么?这个文件确实有多行标题信息,我需要在路上删除,但标题的行数是已知的.我已经看到了建议sedgawk,但我不知道是否有一个"优先"选择.

只是为了澄清,此文件中没有嵌入的选项卡.

linux csv

48
推荐指数
6
解决办法
8万
查看次数

MySQL SELECT INTO OUTFILE到不同的服务器?

我在服务器上有一个shell脚本.该脚本将csv文件吐出到本地目录.问题是数据库服务器在服务器b上.如何在这样的设置中使用select*into outfile

我明白了

Can't create/write to file '/home/username/test.csv/' (Errcode: 2)
Run Code Online (Sandbox Code Playgroud)

使用'LOCAL'关键字解决了加载数据的影响.outfile有类似的东西吗?

mysql sql into-outfile

7
推荐指数
1
解决办法
2万
查看次数

标签 统计

csv ×3

mysql ×3

command-line ×1

into-outfile ×1

linux ×1

quotes ×1

sql ×1