如何把mysql的输出重定向到文件中

如何把mysql的输出重定向到文件中,第1张

对于数据库管理者来说,有时需要根据查询结果生成一系列非常相似但数量较多的sql命令,然后执行。

为此,就需要将查询结果进行格式化,并输出到外部文件中。对于select的查询结果,有个MySQL提供了直接的方法将查询结果写入到外部文件,其基本形式为

select * INTO OUTFILE 'file_name' from tab_list

我们还可以将查询结果进行一定的修饰,这要用到各种MySQL的内置函数,例如字符串函数和算数函数。

mysql有三种导出方式,两种导出是null会变为\N,一种是null变为“NULL”字符串方法一:SELECT...INTO OUTFILEselect * from mytbl into outfile '/tmp/mytbl2.txt' fields terminated by ',' enclosed by '"' lines terminated by '\r\n'导出的文件一定不能已经存在。(这有效的防止了mysql可能覆盖重要文件。)导出时登录的mysql账号需要有FILE权限null值被处理成\N缺点:不能生成包含列标签的输出方法二:重定向mysql程序的输出导出成csv格式[root@localhost ~]# mysql -uroot -p -e "select * from mytbl" --skip-column-names test|sed -e "s/[\t]/,/" -e "s/$/\r/">/tmp/mytbl4.txtnull值被处理成字符串"NULL"方法三:使用mysqldump来导出导出成csv格式[root@localhost ~]# mysqldump -uroot -p --no-create-info --tab=/tmp --fields-enclosed-by="\"" --fields-terminated by="," --lines-terminated-by="\r\n" test mytbl tblnull值被处理成\N 对null的处理需求不同,可以选择不同的导出方式。方法三导出的文件名是固定的,对于文件名有特殊要求的情况,不适宜使用,方法三也只能导出整张表。 方法二可以和linux命令结合使用,灵活性比较大。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6204811.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-18
下一篇 2023-03-18

发表评论

登录后才能评论

评论列表(0条)

保存