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 ‘\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的方案差不多吧。

就当是一个笔记吧

时间: 2024-12-06 15:15:33

MySQL – 导出数据成csv的相关文章

mysql 导出数据到csv文件的命令

1.导出本地数据库数据到本地文件 mysql -A service_db -h your_host -utest -ptest mysql> select * from t_apps where created>'2012-07-02 00:00:00' into outfile /tmp/apps.csv 2.导出远程数据库数据到本地文件 mysql -A service_db -h your_host -utest -ptest -ss -e "SELECT * from t_a

MySQL导出数据到csv文件

select * from users into OUTFILE 'F:/Develop/MySQL57/Uploads/users.csv' CHARACTER SET utf8 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"' LINES TERMINATED BY '\r\n'; 说明:数据格式化:关于数据格式化的问题,需要给导出的字段传递一些参数, 这个参数是根据RFC4180文档设置的,该文档

从oracle导出数据成csv,将csv导入mongodb问题

将csv数据打开,查找"符号,全部替换为空(啥也不用填),保存 在运行就可以了

MySql导出数据到csv

通过mysql客户端shell连接到服务器,选择使用的数据库,输入sql代码: select * from test_info into outfile '/tmp/test.csv' fields terminated by ',' optionally enclosed by '"' escaped by '"' lines terminated by '\r\n';

MySQL 导出数据

MySQL 导出数据 MySQL中你可以使用SELECT...INTO OUTFILE语句来简单的导出数据到文本文件上. 使用 SELECT ... INTO OUTFILE 语句导出数据 以下实例中我们将数据表 tutorials_tbl 数据导出到 /tmp/tutorials.txt 文件中: mysql> SELECT * FROM tutorials_tbl -> INTO OUTFILE '/tmp/tutorials.txt'; 你可以通过命令选项来设置数据输出的指定格式,以下实

Mysql导出数据的几种方式

MySQL导出数据的目的有很多种,如数据库备份.表结构导出.表数据导出.分析数据采取等. Part1 select into outfile 先说最短小精悍的select into outfile, 这是小型数据库分析数据最常用的采集数据方式,具体语法如下:[select 语句] into outfile [导出文件名] [导出参数] [select语句]是经典的查询SQL,可以指定列.可以有where条件.group.order.limit等.[导出文件名]是目标文件的完整路径.由于mysql

Oracle通过PL/SQL Developer导出数据为CSV格式,VARCHAR2类型的字段如果存入的是数值(例如3307830000004059)太长,最后一位会被置为0

问题描述: Oracle通过PL/SQL Developer导出数据为CSV格式,VARCHAR2类型的字段如果存入的是数值(例如3307830000004059)太长,CSV文件该列会用科学计数法表示,即使选择该列,点击数据--.>分列,固定宽度,列数据格式选择文本,最后一位仍然会被置为0. 解决方法: Oracle通过PL/SQL Developer导出数据为CSV格式,新建一个Excel文件,点击数据-->自文本,选择之前导出的CSV文件,文件类型分隔符号,选择逗号,[选中所有列],然后

PHP导出数据到CSV文件函数/方法

如果不清楚什么是CSV文件,可看如下文章介绍  CSV格式的是什么文件?CSV是什么的缩写? /** * 导出数据到CSV文件 * @param array $data 数据 * @param array $title_arr 标题 * @param string $file_name CSV文件名 */ function export_csv(&$data, $title_arr, $file_name = '') { ini_set("max_execution_time"

mysql导出数据至指定文件的命令

根据查询语句,导出数据至指定文件SELECT name INTO OUTFILE '/tmp/result.txt' FIELDS TERMINATED BY '-|-' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM table_name; FIELDS TERMINATED BY 表示指定字段分隔符OPTIONALLY ENCLOSED BY 表示指定字段包围符号LINES TERMINATED BY 表示指定行与行分隔符 m