php mysql 输出csv_MySQL 导出数据为csv格式的方法_MySQL

本文介绍了三种在MySQL中导出数据的方法:1) 使用INTO OUTFILE命令,但无法添加查询条件;2) 结合sed命令进行数据筛选与格式化;3) 利用mysqldump工具。注意,INTO OUTFILE需确保路径有写权限,通常选择/tmp目录。同时,文章提到了在使用过程中的常见问题和解决策略。
摘要由CSDN通过智能技术生成

方案有很多种,我这里简单说一下:

1. into outfile

代码如下:

SELECT * FROM mytable

INTO OUTFILE '/tmp/mytable.csv'

FIELDS TERMINATED BY ','

OPTIONALLY ENCLOSED BY '"'

LINES TERMINATED BY '\n';

在我使用过程中发现一个特别严重问题,这里面不能插入查询条件,比如where这些,也就是说只能整表导出,不知道是不是我的写法有问题,有知道朋友请给我留言。

第二个问题是,outfile的路径一定要有写权限,我们mysql的进程权限一般是mysql用户,因此最好导出到/tmp目录下面。

2. 通过结合sed

代码如下:

mysql -uroot test -e "select ip from server where a.name like '%abc%'" -N -s | sed -e 's/^/"/g;s/$/"\n/g'; > /tmp/test.csv

这里首先使用mysql命令的-e参数来执行sql语句,然后通过-N来去掉输出结果中列名,-s去掉输出结果中的各种划线。

然后使用sed命令输出结果中所有相关数据进行替换,其中替换了三处,1.在行首增加“,在行尾增加”和换行,在每个字段之间增加”,”来分隔。

3. 通过mysqldump来实现

代码如下:

mysqldump -u username -p -t -T/path/to/directory dbname table_name --fields-terminated-by=','

和1的方案差不多吧。

就当是一个笔记吧

f68f2add0b68e4f9810432fce46917b7.png

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值