最近有一个需求,就是将数据库中某些数据整理出来制作成Excel表格,看了下数据库中的相关数据有将近六百条,如果手工一个个导出,基本上人也废了。。。
那有没有办法可以将查出来的数据直接导入到Excel中呢?我们可以使用如下SQL语句
select id,nickname,createTime from T_MEMBER into outfile '/mnt/mysql_bk/xxx.xls'
执行后报错
ERROR 1 (HY000): Can't create/write to file '/mnt/mysql_bk/xxx.xls' (Errcode: 13 - Permission denied)
发现/mnt/mysql_bk没有权限
chmod 777 /mnt/mysql_bk/
重新执行SQL语句,导出后打开Excel文件,发现都是乱码,因为office默认的是gb2312编码,而服务器端生成的很有可能是utf-8编码,所以我们要把查询出来的结果转换为gb2312格式
select id,convert(nickname using gb2312),createTime from T_MEMBER into outfile '/mnt/mysql_bk/xxx.xls'
导出后打开Excel文件,此时数据可以正常显示了
参考:悄悄告诉你,MySQL 通过SQL语句导出到Excel的方法