MySQL 5以降を実行している間は、手動で名前を入力する必要があります。ここでは、UNIXのコマンドラインで実行するためのbashスクリプトとして記述され、次のとおりです。
DBNAME=<database_name>
TABLE=<table_name>
FNAME=/path/to/output/dir/$(date +%Y.%m.%d)-$DBNAME.csv
#(1)creates empty file and sets up column names using the information_schema
mysql -u <username> -p<password> $DBNAME -B -e "SELECT COLUMN_NAME FROM information_schema.COLUMNS C WHERE table_name = '$TABLE';" | awk '{print $1}' | grep -iv ^COLUMN_NAME$ | sed 's/^/"/g;s/$/"/g' | tr '\n' ',' > $FNAME
#(2)appends newline to mark beginning of data vs. column titles
echo "" >> $FNAME
#(3)dumps data from DB into /var/mysql/tempfile.csv
mysql -u <username> -p<password> $DBNAME -B -e "SELECT * INTO OUTFILE '/var/mysql/tempfile.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' FROM $TABLE;"
#(4)merges data file and file w/ column names
cat /var/mysql/tempfile.csv >> $FNAME
#(5)deletes tempfile
rm -rf /var/mysql/tempfile.csv
ない最も優雅な解決策が、私はそれがSQLを知っている誰かによって単一の行に圧縮することができると確信している、および/または私より少し良くbashの...それは何
は次のとおりです。
- が列ヘッダー
- は、そのため空CSVへの余分な改行を追加/ wの空のCSVを作成するために、MySQLの情報スキーマを使用していますあなたのデータが表示され始めます新しいライン
- はかなり標準を使用しています「OUTFILE INTO SELECT * ...」データ
- の完全なCSVを作成するためのクエリは、(一時的な)データを削除
- 列ヘッダ/ wのファイルにデータファイルを追加しますファイル
幸運にも、掃除したら結果を投稿してください!
チェックこのアウト(それが回避策です):[最初の行の見出しでのMySQLのエクスポートCSVファイル](http://homepage.mac.com/kelleherk/iblog/C711669388/E20060511141025/index.html) –