MySQL查询导出数据Excel【转】

情况说明

习惯使用navicat工具了,在navicat里面操作查询,然后导出都很方便
直到今天,查询一个表,一共有105W条数据,然后导出到Excel,速度那叫一个慢。

Linux服务器上导出

主要是用到into outfile '/path'

mysql> SELECT b.station_code,a.* into outfile '/tmp/a.xls' from table1 a JOIN table2 on a.CODE = b.sensor_code WHERE a.mark = 1;
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

提示出错
原因是mysql默认了一个文件路径,我们不能放在别的地方,除非修改了这个参数

查看mysql默认导出文件路径

show variables like '%secure%';

Variable_name Value
require_secure_transport OFF
secure_auth ON
secure_file_priv /var/lib/mysql-files/

 

于是休息into outfile '/path'为into outfile '/var/lib/mysql-files/a.xls'

mysql> SELECT b.station_code,a.* into outfile '/var/lib/mysql-files/a.xls' from hw_data_recvcalibratesend a JOIN hw_station b on a.SNCODE = b.sensor_code WHERE a.CalbrateMark = 1;
Query OK, 1075906 rows affected (7.43 sec)

 

服务器效率还是牛。。。。

修改参数

修改配置可修改mysql配置文件,查看是否有

secure_file_priv =
这样一行内容,如果没有,则手动添加,

secure_file_priv = /home
表示限制为/home文件夹

secure_file_priv =
表示不限制目录,等号一定要有,否则mysql无法启动

带字段名称

使用上面的方法直接导出到xls文档中是不带字段名称的
有的时候会需要显示名称
那么可以用Union all的方法来做

复制代码
SELECT
'recID', #Excel表头中的字段名
'_id' #Excel表头中的字段名
UNION ALL
SELECT
recID, #查询的数据字段
_id #查询的数据字段
FROM
tableName a #表名
WHERE
a.timeField BETWEEN '2020-11-09 00:00:00'
AND '2020-11-10 13:10:00' INTO OUTFILE '/var/lib/mysql-files/Excel001.xls';
复制代码

 

中文乱码

CHARACTER SET gbk

 

SELECT b.station_code,a.* into outfile '/var/lib/mysql-files/a.xls' CHARACTER SET gbk from hw_data_recvcalibratesend a JOIN hw_station b on a.SNCODE = b.sensor_code WHERE a.CalbrateMark = 1;

 

MySQL导出数据Excel变成E+15

如标题所示,因为Excel数据格式变成E+15导致查出的数据不准确。上午百度也没搜出好的方法。

想到了一个笨办法,先将文件导成txt,然后用UE列模式在数据前加一列单引号,在黏贴到Excel中


————————————————

转自

版权声明:本文为CSDN博主「再看我把你吃掉」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zz_aiytag/article/details/109307697

参考

mysql数据库表如何导出到excel-木庄网络博客
http://www.muzhuangnet.com/show/44405.html

posted @   paul_hch  阅读(1090)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2020-08-31 linux系统优化sysctl.conf【转】
2020-08-31 linux-内核参数优化参考指标【转】
2020-08-31 alias添加时特殊字符【原创】
2018-08-31 Python使用MySQL数据库【转】
2017-08-31 FileZilla 配置备份与还原【转】
2016-08-31 Nginx 和 IIS 实现动静分离【转载】
2016-08-31 Shell脚本,自动化发布tomcat项目【转载】
点击右上角即可分享
微信分享提示