您的位置:首页 > 数据库

指定SQL文本导出CSV文件

2017-05-22 17:06 176 查看
此下脚本是较灵活的卸数脚本,需指定表名、卸数路径、卸数的SQL文本(cat export_csv.sh)

**#!/usr/bin/sh

#功能:指定表导出含有字段title的CSV文件(编码GBK)

#调用方法:sh export_csv.sh TABLENAME PATH

#导出的CSV文件路径: $WORKDIR/data/$TABLENAME.csv

#编写一个需要卸数的SQL脚本**

TABLENAME=\$1

WORKDIR=\$2

SQL=
cat $WORKDIR/${TABLENAME}.sql
#注释:需要导出表的SQL语句。例如:导出表event此SQL文本为:SELECT * FROM ENENT

######此段是将打印表的字段TITILE###########################

mysql -uroot -p123456 zhongda << EOF

select case when ordinal_position=1 then concat(“SELECT “”“,column_name,”“”“)

else concat(“,”“”,column_name,”“”“) #假设字段name就拼 ,”name”

end as columnname

from information_schema.columns

where table_name=’$TABLENAME’ ORDER BY ordinal_position

into outfile ‘$WORKDIR/${TABLENAME}.txt’

EOF

#######此段是卸出含有表头的CSV文件##############

mysql -uroot -p123456 zhongda << EOF

select * from (

cat $WORKDIR/${TABLENAME}.txt


union all

$SQL

) b

into outfile ‘$WORKDIR/data/${TABLENAME}.csv’

CHARACTER SET GBK

fields terminated by ‘,’ optionally enclosed by ‘”’

lines terminated by ‘\r\n’ ;

EOF
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: