zoukankan      html  css  js  c++  java
  • MySQL – 导出数据成csv

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

    1.  into outfile

    1 SELECT * FROM mytable  
    2 INTO OUTFILE '/tmp/mytable.csv'  
    3 FIELDS TERMINATED BY ','  
    4 OPTIONALLY ENCLOSED BY '"'  
    5 LINES TERMINATED BY '
    ';

    在我使用过程中发现一个特别严重问题,这里面不能插入查询条件,比如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/$/"
    /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的方案差不多吧。

    就当是一个笔记吧

  • 相关阅读:
    网络编程中 TCP 半开连接和TIME_WAIT 学习
    redis中的小秘密和持久化小细节
    排序
    Es官方文档整理-3.Doc Values和FieldData
    Es官方文档整理-2.分片内部原理
    Elasticsearch doc_value认识
    路边停靠 贴边停车不蹭轮胎的技巧
    mybatis 连接数据库
    putIfAbsent
    Hive与HBase区别 大墨垂杨
  • 原文地址:https://www.cnblogs.com/huangjacky/p/4768386.html
Copyright © 2011-2022 走看看