mysql导出文本文件,加分隔符

 

mysql> select * into outfile 'D:/temp/20150410.txt' FIELDS TERMINATED BY ',
' from `2015-04-10`;

 把命令存成sql,在shell里面执行 

mysql -uroot -ppassword < update.sql  

 

a.sql

select DATE_SUB(sysdate(), INTERVAL 1 DAY), * into outfile '\data\player\equip.log' FIELDS TERMINATED BY ';' from `equip` limit 1;

a.sh

cd  /data/player
rm -rf *
mysql -uroot -ppassword < a.sql  
MYDATE=$(date +%Y%m%d)
mv equip.log equip-1-$MYDATE.log

 

 

SELECT INTO…OUTFILE语法:

select * from Table into outfile '/路径/文件名'
fields terminated by ','
enclosed by '"'
lines terminated by '\r\n'

(1)路径目录必须有读写权限777
(2)文件名必须唯一
(3)fields terminated by ','必须存在,否则打开的文件的列在同一的单元格中出现
(4)我验证的表结构为gbk的,否则出现乱码

●  fields子句:在FIELDS子句中有三个亚子句:TERMINATED BY、 [OPTIONALLY] ENCLOSED BY和ESCAPED BY。如果指定了FIELDS子句,则这三个亚子句中至少要指定一个。

(1)TERMINATED BY用来指定字段值之间的符号,例如,“TERMINATED BY ','”指定了逗号作为两个字段值之间的标志。

(2)ENCLOSED BY子句用来指定包裹文件中字符值的符号,例如,“ENCLOSED BY ' " '”表示文件中字符值放在双引号之间,若加上关键字OPTIONALLY表示所有的值都放在双引号之间。

(3)ESCAPED BY子句用来指定转义字符,例如,“ESCAPED BY '*'”将“*”指定为转义字符,取代“\”,如空格将表示为“*N”。

(4) LINES子句:在LINES子句中使用TERMINATED BY指定一行结束的标志,如“LINES TERMINATED BY '?'”表示一行以“?”作为结束标志。

 

你可能感兴趣的:(mysql)