• 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

  • 相关阅读:
    数据流图
    数据库设计
    多媒体基础知识
    面向对象程序设计
    UML建模
    warning: integer overflow in expression [Woverflow]
    unmatched/skipped datagrams
    MFC
    D3DWindower
    cheatengine
  • 原文地址:https://www.cnblogs.com/paul8339/p/16641816.html
Copyright © 2020-2023  润新知