mysql根据sql查询语句导出数据
在这⾥提供2中⽅式:
建议:可以使⽤⽅式⼆,就不使⽤⽅式⼀。
⽅式⼀:
在linux下⽀持,window下不⽀持。
进⼊到mysql的bin⽬录,或者已经给mysql配置了环境变量就不⽤进⼊bin⽬录。
原理:
通过mysql⼯具的-e参数,可以执⾏select、update、delete、insert语句。
通过mysql -u⽤户名 –p密码数据库 –esql语句 > ⽂件路径/⽂件名
利⽤linux的>写⼊操作,将mysql通过-e参数执⾏的语句结果输出到⽂件中去。
通过mysql 导出⽅式:
.
/mysql -uliuxioali -p1452liu www -e " SELECT
a.phone
FROM
user_info a
LIMIT 10" >
讲解:
./mysql -uliuxioali -p1452liu www -e " SELECT
a.phone
FROM
user_info a
LIMIT 10"
执⾏查询,正常情况会将结果输出到控制台。
>
获取上⼀句的结果输出到⽂件中
⽅式⼆:
需要设置mysql只读参数:
默认值为:
secure_file_priv=NULL
必须在my.ini(window默认路径:C:\Windows)或myf(linux默认路径/etc/myf)中设置
secure_file_priv=’’或secure_file_priv=’/tmp’
secure_file_priv=’’ 可以任意指定⽂件输出路径
secure_file_priv=’/tmp’ ⽣成⽂件都输出到了/tmp⽂件路径下
并且重启mysql服务,如果是在⽣产环境必须晚上配置重启服务。
在mysql内部执⾏。
原理:
就是mysql提供的导出数据的⼀种语法。
语法:
SELECT ... FROM TABLE_A INTO OUTFILE "/path/to/file.csv" FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n';语法解析:FIELDS TERMINATED BY ','指定字段之间的分割符
OPTIONALLY ENCLOSED BY '"'指定每个字段值得前后符号结果为 "12"
LINES TERMINATED BY '\n'指定换⾏符,因为window和linux换⾏符不⼀样。Window是\r\n linux是\n
例句:
SELECT phone FROM user_info WHERE phone is NOT NULL LIMIT 10 INTO OUTFILE 'F:\\' FI
ELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' ;
输出结果如下:
"135********"
"135********"
"135********"
"135********"
"135********"
"135********"
mysql怎么导出数据库给别人"135********"
"135********"
"135********"
"135********"
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论