leo_logic

将MySQL查询结果输出到某文件夹方法总结
方法一:(在MySQL中):SELECT... INTO OUTFILE语句导出MySQL数据例如:找出物理(ph...
扫描右侧二维码阅读全文
12
2018/11

将MySQL查询结果输出到某文件夹方法总结

方法一:(在MySQL中):SELECT... INTO OUTFILE语句导出MySQL数据

例如:找出物理(physics)分数最高的同学,并把他的信息(id、姓名、性别)输出到路径 /var/lib/mysql-files/ 下的 physics.txt文件中!

 SELECT s.sid,s.sname,s.gender
 FROM student s
 JOIN mark m
 ON s.sid=m.sid
 JOIN course c
 ON c.cid=m.cid
 JOIN (SELECT cname,MAX(score) maxFenshu FROM mark,course WHERE mark.cid=course.cid AND course.cname='physics') new
 ON new.maxFenshu = m.score
 WHERE c.cname='physics'
 #以下代码是导出的关键
 into outfile '/var/lib/mysql-files/physics.txt'
  • 注意:该方法可能遇到没有ERROR 1 (HY000): Can't create/write to file ··· 表示MySQL没有写入某文件夹的权限

方法二:查询都自动写入文件:

mysql> pager cat > /tmp/aboutSQL.txt ;
PAGER set to 'cat > /tmp/aboutSQL.txt'  #之后的所有查询结果都自动写入/tmp/test.txt',并前后覆盖,在框口不再显示查询结果
mysql> pager cat >> /tmp/aboutSQL.txt ; #和>功能同,但不会覆盖掉aboutSQL.txt原有数据,只是以追加的方式进行

联系:当处理大量数据时,不想显示查询的结果,而只需知道查询花费的时间,可以使用pager cat /dev/null; 这样实际上等于后面执行的命令|cat /dev/null,这样显示结果就只是执行时间了。

方法三(在liunx伪终端中):

例如:在/home/shiyanlou/创建文件名为test,且后缀为sql文件的空文件,并将以下代码保存在test.sql中。再liunx伪终端中使用mysql -u root -Ne "use test; select * from tb_test;" > /tmp/rs.txt代码将test.sql中的SQL执行后的查询结果输出到rs.txt文件

  • 注意: 这里得考虑执行该条命令的liunx用户是否具有文件夹的写入权限。
Last modification:November 12th, 2018 at 08:52 am
If you think my article is useful to you, please feel free to appreciate

Leave a Comment