我正在尝试使用bash脚本将输出从MYSQL视图转储为CSV。
作为灵感,我使用了这篇文章:How to use a bash script to write to a mysql table
奇怪的是,SELECT column1,column2,column3 FROM语法工作正常,但是当你有15列时这是不切实际的......
SELECT count(*)FROM works
然而,SELECT * FROM抛出了MYSQL语法错误
#!/bin/bash
fpath=/tmp/
fname=`date +%Y%m%d-%H%M%S`.csv
savedest=\'$fpath$fname\'
echo "Saving into"$savedest
params="-u root -p mydb"
s1="SELECT * FROM flat_view INTO OUTFILE "
s2=" FIELDS TERMINATED BY ','"
s3=" ENCLOSED BY '\"'"
s4=" LINES TERMINATED BY '\\n'"
selectend=";"
echo $s1$savedest$s2$s3$s4$selectend | mysql $params
我想我没有正确逃脱。
PS。这是Centos 5.8和mysql Ver 14.12 Distrib 5.0.95
答案 0 :(得分:0)
在输入问题时,我决定再尝试一下笑声:
s1="SELECT flat_view.* FROM flat_view INTO OUTFILE "
它有效!
我发现了一个可能含糊不清的SELECT *读取MySQL文档:http://dev.mysql.com/doc/refman/5.5/en/select.html
但奇怪的是,SELECT * FROM在mysql命令行中工作正常,但不是来自bash脚本。