有没有一种简单的方式可以从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
当需要将许多列用引号括起来或结果中有需要转义的引号时,情况会变得混乱。
mysql -h(hostname/IP>) -u(username) -p(password) databasename <(query.sql) > outputFILE(.txt/.xls)
E.g.,
hostname -x.x.x.x
uname - username
password - password
DBName - employeeDB
queryFile - employee.sql
outputFile - outputFile.xls
mysql -hx.x.x.x -uusername -ppassword employeeDB<employee.sql> outputFile.xls
确保你在SQL查询所在的目录中执行该命令或在上述命令中提供SQL查询位置的完整路径。
REPLACE()
函数来转义引号。 - dsm