MySQL 导出数据为csv格式的方法
方案有很多种,我这里简单说一下:
1. intooutfile
SELECT*FROMmytable INTOOUTFILE'/tmp/mytable.csv' FIELDSTERMINATEDBY',' OPTIONALLYENCLOSEDBY'"' LINESTERMINATEDBY'\n';
在我使用过程中发现一个特别严重问题,这里面不能插入查询条件,比如where这些,也就是说只能整表导出,不知道是不是我的写法有问题,有知道朋友请给我留言。
第二个问题是,outfile的路径一定要有写权限,我们mysql的进程权限一般是mysql用户,因此最好导出到/tmp目录下面。
2.通过结合sed
mysql-uroottest-e"selectipfromserverwherea.namelike'%abc%'" -N-s|sed-e's/^/"/g;s/$/"\n/g';>/tmp/test.csv
这里首先使用mysql命令的-e参数来执行sql语句,然后通过-N来去掉输出结果中列名,-s去掉输出结果中的各种划线。
然后使用sed命令输出结果中所有相关数据进行替换,其中替换了三处,1.在行首增加“,在行尾增加”和换行,在每个字段之间增加”,”来分隔。
3.通过mysqldump来实现
mysqldump-uusername-p-t -T/path/to/directorydbnametable_name--fields-terminated-by=','
和1的方案差不多吧。
就当是一个笔记吧
热门推荐
10 小红书平安祝福语简短
11 生日祝福语大全女孩简短
12 收生日红包祝福语 简短
13 领证幽默祝福语简短
14 法考面试祝福语简短
15 老哥出门祝福语简短语
16 送灯祝福语简短独特
17 幼儿狗年祝福语大全简短
18 好听的元旦简短祝福语