10

コマンドでmysqlからcsvを直接エクスポートしたい

SELECT .... 
FROM ...
INTO OUTFILE '/tmp/export.csv' 
FIELDS TERMINATED BY ',' 
ESCAPED BY '\\'
LINES TERMINATED BY '\n' ;

これは完全に機能しますが、エンコードは utf8 ではありません。コンテンツを utf8 エンコーディングでエクスポートするにはどうすればよいですか?

4

1 に答える 1

22

SELECT ... INTOSyntaxの下に記載されているように:

SELECT ... INTO OUTFILEの補数ですLOAD DATA INFILECHARACTER SET列の値は、句で指定された文字セットに変換されて書き込まれます。そのような句が存在しない場合、binary文字セットを使用して値がダンプされます。実際には、文字セットの変換はありません。結果セットに複数の文字セットの列が含まれている場合、出力データ ファイルも同様であり、ファイルを正しくリロードできない場合があります。

SELECT文法はSyntaxで文書化されています:

    [INTO OUTFILE 'file_name'
      [CHARACTER SET charset_name]

したがって:

SELECT .... 
FROM ...
INTO OUTFILE '/tmp/export.csv'
CHARACTER SET utf8 
FIELDS TERMINATED BY ',' 
ESCAPED BY '\\'
LINES TERMINATED BY '\n' ;
于 2013-09-06T11:56:47.033 に答える