zoukankan      html  css  js  c++  java
  • MySQL执行Select语句将结果导出到文件的方法

     

    如果是对MySQL整个表数据导出,可以参照文章:http://www.crazyant.net/1355.html

    然而也会遇到的场景是,需要执行一个SQL语句,然后将SQL语句的结果输出到文件;

    方法一:使用MySQL的select * into outfile ‘/tmp/rs.txt’ from tb_name句型

    这是个不可行的方法;

    举个例子,执行以下的SQL语句:

    这个SQL总会报出下面的错误:

    原因是这个语句并不是在MySQL客户端,而是在MySQL的服务器上执行的,通常用于服务器管理员在服务器机器上进行数据备份使用,由于MySQL客户端账号并没有访问服务器机器本身的权限,所以这个SQL执行不会成功。

    方法2:直接将SQL执行的结果重定向到文件即可

    执行下面的命令,能够将SQL语句执行的结果输出到文件:

    其中-Ne是执行这个SQL语句的选项,-N代表输出SQL语句执行结果中不带第一行的字段名称,-e表示要执行SQL语句;

    执行下面的命令,则可以执行SQL文件,并把结果输出到文件:

    新建一个文件,名称为runsql.sql,内容为:

    然后这样执行命令:

    其中-N命令仍然表示不输出表头字段说明(第一行),小于号表示输入重定向,runsql.sql的文件内容会被发送给mysql的命令,大于号则表示输出重定向,会将命令执行的结果输出到文件;


    导出csv文件,逗号分隔符:

     
     
    1
    mysql-h10.10.10.10-ucrazyant-p123456-P3306-N<runsql.sql | sed 's/ /","/g;s/^/"/;s/$/"/;s/ //g' > /tmp/rs.txt

    总结:

    • select into outfile只能在MySQL服务器上执行,客户端上无法执行;
    • mysql -Ne “sql” > rs.txt可以将SQL语句执行后输出为文件
    • mysql -N < runsql.sql > rs.txt可以执行sql文件中的内容,然后将结果输出到文件;
    • mysql -N的选项,表示输出时不带表头
  • 相关阅读:
    三范式
    SVN
    docker镜像文件的导入与导出(docker镜像迁移)
    OpenStack镜像服务基本操作
    keystone认证服务
    OpenStack存储(单节点)
    OpenStack单节点制作镜像
    清除OpenStack网络与路由
    制作OpenStack云平台centos6.5镜像
    OpenStack单节点网络设置
  • 原文地址:https://www.cnblogs.com/yinwutuan/p/10208955.html
Copyright © 2011-2022 走看看