【发布时间】:2009-09-21 15:35:53
【问题描述】:
我有以下 bash 脚本:
#!/bin/sh
MYSQLHOST="mysql.remote-host.com"
MYSQLDB="mysqldb"
MYSQLTABLE="table"
MYSQLUSER="user"
MYSQLPASS="pass"
MYSQLDUMP="Report/report.csv"
LOG="Report/report.log"
MYSQLOPTS="--user=${MYSQLUSER} --password=${MYSQLPASS} --host=${MYSQLHOST} ${MYSQLDB}"
echo "Report Begin: $(date)"
echo "MySQL Dump Begin: $(date)" >> ${LOG}
echo "SELECT ${MYSQLTABLE}.created_at, ${MYSQLTABLE}.product_options FROM ${MYSQLTABLE} WHERE ${MYSQLTABLE}.product_id=1 ORDER BY ${MYSQLTABLE}.created_at" | mysql ${MYSQLOPTS} > ${MYSQLDUMP}
echo "MySQL Dump End: $(date)" >> ${LOG}
echo "Report Successful: $(date)"
这会将我的 MySQL 查询输出到“TAB”分隔文件 report.csv。但是,我需要将其输出到“COMMA”分隔文件。我意识到我可以创建另一个脚本来将此文件从 TAB 转换为 COMMA 分隔,但是,如果可以的话,我宁愿保存该步骤。那么如何让 MySQL 以逗号分隔格式转储文件?
编辑: 我确实找到了这个解决方案:How do you output MySQL query results in csv format (to the screen, not to a file)?
但是我似乎无法让它工作:
echo "SELECT CONCAT_WS(',', ${MYSQLTABLE}.created_at, ${MYSQLTABLE}.product_options) FROM ${MYSQLTABLE} WHERE ${MYSQLTABLE}.product_id=1 ORDER BY ${MYSQLTABLE}.created_at" | mysql ${MYSQLOPTS} > ${MYSQLDUMP}
没有用:(
【问题讨论】: