MySQL执行Select语句将结果导出到文件的方法_MySQL
如果是对MySQL整个表数据导出,可以参照文章:http://www.crazyant.net/1355.html
然而也会遇到的场景是,需要执行一个SQL语句,然后将SQL语句的结果输出到文件;
方法一:使用MySQL的select * into outfile ‘/tmp/rs.txt’ from tb_name句型
这是个不可行的方法;
举个例子,执行以下的SQL语句:
mysql -h10.10.10.10 -ucrazyant -p123456 -P3306 -e "use test; select * into outfile '/tmp/rs.txt' from tb_test;"
mysql-h10.10.10.10-ucrazyant-p123456-P3306-e"use test; select * into outfile '/tmp/rs.txt' from tb_test;" |
这个SQL总会报出下面的错误:
ERROR 1045 (28000) at line 1: Access denied for user 'crazyant'@'10.10.10.10' (using password: YES)
ERROR1045(28000)atline1:Accessdeniedforuser'crazyant'@'10.10.10.10'(usingpassword:YES) |
原因是这个语句并不是在MySQL客户端,而是在MySQL的服务器上执行的,通常用于服务器管理员在服务器机器上进行数据备份使用,由于MySQL客户端账号并没有访问服务器机器本身的权限,所以这个SQL执行不会成功。
方法2:直接将SQL执行的结果重定向到文件即可
执行下面的命令,能够将SQL语句执行的结果输出到文件:
mysql -h10.10.10.10 -ucrazyant -p123456 -P3306 -Ne "use test; select * from tb_test;" > /tmp/rs.txt
mysql-h10.10.10.10-ucrazyant-p123456-P3306-Ne"use test; select * from tb_test;">/tmp/rs.txt |
其中-Ne是执行这个SQL语句的选项,-N代表输出SQL语句执行结果中不带第一行的字段名称,-e表示要执行SQL语句;
执行下面的命令,则可以执行SQL文件,并把结果输出到文件:
新建一个文件,名称为runsql.sql,内容为:
use test; select * from db_test;
usetest;select *fromdb_test; |
然后这样执行命令:
mysql -h10.10.10.10 -ucrazyant -p123456 -P3306 -N /tmp/rs.txt
mysql-h10.10.10.10-ucrazyant-p123456-P3306-N |
其中-N命令仍然表示不输出表头字段说明(第一行),小于号表示输入重定向,runsql.sql的文件内容会被发送给mysql的命令,大于号则表示输出重定向,会将命令执行的结果输出到文件;
总结:
- select into outfile只能在MySQL服务器上执行,客户端上无法执行;
- mysql -Ne “sql” > rs.txt可以将SQL语句执行后输出为文件
- mysql -N rs.txt可以执行sql文件中的内容,然后将结果输出到文件;
- mysql -N的选项,表示输出时不带表头

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

本文讨论了使用MySQL的Alter Table语句修改表,包括添加/删除列,重命名表/列以及更改列数据类型。

文章讨论了为MySQL配置SSL/TLS加密,包括证书生成和验证。主要问题是使用自签名证书的安全含义。[角色计数:159]

文章讨论了流行的MySQL GUI工具,例如MySQL Workbench和PhpMyAdmin,比较了它们对初学者和高级用户的功能和适合性。[159个字符]

本文讨论了使用Drop Table语句在MySQL中放下表,并强调了预防措施和风险。它强调,没有备份,该动作是不可逆转的,详细介绍了恢复方法和潜在的生产环境危害。

本文讨论了在PostgreSQL,MySQL和MongoDB等各个数据库中的JSON列上创建索引,以增强查询性能。它解释了索引特定的JSON路径的语法和好处,并列出了支持的数据库系统。

文章讨论了使用准备好的语句,输入验证和强密码策略确保针对SQL注入和蛮力攻击的MySQL。(159个字符)
