有没有一种简单的方法可以从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命令行工具以逗号分隔格式输出查询结果.我的mysql用户无权使用此问题中引用的"INTO OUTFILE"选项:
我也知道分别在html和xml中格式化输出的-H和-X选项,但是没有办法直接将csv格式输出到屏幕上吗?
我发现这个方法使用sed - http://tlug.dnho.net/?q=node/209.但是,我很想找到一个直接的mysql解决方案.
有任何想法吗?
我想做以下事情 mysql -uuser -ppass -h remote.host.tld database < script.sql
其中script.sql包含以下内容
SELECT *
FROM webrecord_wr25mfz_20101011_175524
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
Run Code Online (Sandbox Code Playgroud)
我希望CSV输出指向标准输出.原因是因为使用an运行此查询INTO OUTFILE 'blah.csv'将保存远程主机上的文件.我希望文件保存在本地主机上.
如果我可以将标准输出重定向到文件,那将是花花公子.