为此,就需要将查询结果进行格式化,并输出到外部文件中。对于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命令结合使用,灵活性比较大。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)