如何把SQL语句的查询结果保存到文件中?

哎,讲真,我以前就是搞PL/SQL开发的。
记得有一次,我在一个项目里,那会儿正好是在2 01 9 年,在成都,那会儿我们团队接了一个大项目,要处理的数据量特别大,得有几十万条记录。

当时我写了个复杂的查询,结果一跑,哇塞,好家伙,结果集都好几百页。
那会儿我那心情,就一个字:爽!但是,问题来了,怎么导出这个结果集呢?一开始我还傻眼了,因为那导出按钮愣是没找到。

后来一琢磨,这不就是常识吗?我就试着点了点“文件”菜单,然后下拉,居然真有个“导出”选项。
我点进去,发现还能选择导出的格式,是CSV还是TXT,或者是直接保存为数据库表。

这事儿让我明白了,有时候最简单的方法就在眼前,就是没注意到。
以后再遇到类似的坑,我就知道该往哪找解决办法了。
哎,说起来,这块儿我倒是挺有经验的,毕竟搞了这么多年数据库开发,这些小细节都摸透了。

MySQL如何创建txt文件mysql中创建txt

说实话,你这篇写得挺全乎,把MySQL怎么导出txt说得明明白白。
不过我得补充点我自己的体会,可能有点跑题,但这是真事儿。

就拿SELECT INTO OUTFILE来说吧,我当年第一次用的时候差点犯傻。
那会儿在一个共享服务器上,我写了个脚本想导出数据,结果文件直接生成了服务器根目录。
管理员找我的时候我脸都绿了——你知道那种感觉不?所以这招用着挺方便,但绝对路径这事儿必须拿捏死。
我有个哥们儿,把文件名写成了相对路径,结果导出到MySQL安装目录了,把系统文件都隔三差五给覆盖了,最后花大半夜去恢复数据。

再说mysqltee命令,这玩意儿我倒是用得顺。
记得有次给客户做数据备份,把查询结果直接用tee重定向到文件,客户那边看报表的时候顺便能看见进度。
不过有个坑得注意,如果数据库连接断了,比如网线突然抽了,文件可能就截断了。
我遇到过一次,数据只导出了百分之五十,客户那边急得不行,最后发现是路由器死机了。

还有个冷门技巧,虽然不是直接创建txt,但也能满足需求。
就是在命令行用mysqldump导出sql,然后用重定向符号>直接生成txt。
比如mysqldump -u root -p test > C:\test.txt,虽然txt里是转义字符,但能用记事本打开,字段之间默认用逗号分隔。
我有时候就搞个Excel宏,把这种逗号分隔的txt直接转成表格,比用记事本手动逗号分隔省事多了。

说到底,选哪种方法得看情况。
如果数据量不大,直接INTO OUTFILE最快;如果得交互式操作,比如一边看数据一边调整查询条件,那用tee比较合适。
最关键的是,文件路径和权限这块儿,一定要提前确认好,别到时候跑一趟服务器现场,比啥都闹心。