【问题标题】:How export csv from mysql utf8如何从 mysql utf8 导出 csv
【发布时间】:2013-09-06 10:49:30
【问题描述】:

我想用命令直接从mysql导出csv

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

这工作完美,但编码不是utf8。如何使内容导出utf8编码?

【问题讨论】:

标签: php mysql utf-8


【解决方案1】:

SELECT ... INTO Syntax 中所述:

SELECT ... INTO OUTFILELOAD DATA INFILE 的补码。列值写入转换为CHARACTER 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' ;

【讨论】:

  • #1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 'CHARACTER SET utf8 附近使用的正确语法
  • @eggyal 关键是你写的东西似乎有语法错误问题,因为 utf8 选项没有出现在 phpmyadmin i.imgur.com/jYKZqjI.png
  • windows用户,路径如下:c:/temp/export.csv
  • 还要注意 MySQL 的“utf8”字符集不处理 4 字节的 unicode 字符。如果您的 utf8 导出导致某些字符出错,请改用 CHARACTER SET utf8mb4
猜你喜欢
  • 2015-08-13
  • 2011-06-04
  • 1970-01-01
  • 2014-11-09
  • 2012-09-07
  • 1970-01-01
  • 2020-06-01
  • 2010-10-12
  • 2017-09-10
相关资源
最近更新 更多