MySQLでSQL結果をCSV出力する際に、ダブルクォーテーションでデータを囲む方法
スポンサードリンク
MySQLでは、SQL実行時に SELECT … INTO OUTFILE 構文を使用すると結果をファイルに保存することができます。 以下SQL文を実行すると、テーブル TABLE_NAME の全データがCSV形式で /var/lib/mysql-files/out.csv ファイルに出力されます。出力されたCSVファイルは、各フィールドがカンマで区切られ、ダブルクォートで囲まれた形式になります。
SELECT * FROM TABLE_NAME INTO OUTFILE '/var/lib/mysql-files/out.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\r\n'
上記例では以下の指定も加えています。一緒に指定するオプションとして覚えておきましょう。
- FIELDS TERMINATED BY ‘,’: 各フィールドの区切り文字をカンマ(,)にします。
- ESCAPED BY ‘“’: フィールドの値をダブルクォート(”)で囲みます。
- ENCLOSED BY ‘“’: ダブルクォート自体を含むフィールド値の場合は、バックスラッシュ(\)でエスケープします。
- LINES TERMINATED BY ‘\r\n’: 各レコード(行)を改行コード(\r\n)で区切ります。
CSVをExcelで読み込む際、データに改行が含まれていると上手くデータを読み込めない問題が起こることがありますが、ダブルクォーテーションで各フィールドを囲んでいれば、この問題を回避できます。
SQLパズル 第2版: プログラミングが変わる書き方/考え方
SQLに関する実践的な問題75問について解説した書籍。SQLで解決するものからテーブル設計自体を見直す解決方法など実践的なノウハウが学べる良書です。
リンク
Search
Recent Posts
- OpenSSHのエラー「bad ownership or modes for chroot directory component」の原因と解消方法
- Apacheの起動状態をチェックして停止してる場合にApacheを起動するシェルスクリプト
- Amazon LinuxのOSバージョンを調べる方法|/etc/redhat-release の代替ファイル
- MYSQLでダンプファイルを取得する際に発生したエラー「Couldn't execute 'SELECT BINLOG_GTID_POS('', '0')': You are not using binary logging (1381)」の原因と対処方法
- RHEL系Linuxでリポジトリを一覧表示するコマンド(dnf repolist)