Ama*_*ian 186
MySQL提供了一种简单的机制,用于将select语句的结果写入服务器上的文本文件.使用INTO OUTFILE命名法的扩展选项,可以创建逗号分隔值(CSV),可以将其导入电子表格应用程序(如OpenOffice或Excel)或任何其他接受CSV格式数据的应用程序.
给出诸如的查询
Run Code Online (Sandbox Code Playgroud)SELECT order_id,product_name,qty FROM orders返回三列数据,结果可以使用查询放入文件/tmp/orders.txt:
Run Code Online (Sandbox Code Playgroud)SELECT order_id,product_name,qty FROM orders INTO OUTFILE '/tmp/orders.txt'这将创建一个制表符分隔文件,每行都在自己的行上.要更改此行为,可以向查询添加修饰符:
Run Code Online (Sandbox Code Playgroud)SELECT order_id,product_name,qty FROM orders INTO OUTFILE '/tmp/orders.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'在此示例中,每个字段将用双引号括起来,字段将用逗号分隔,每行将在换行符(\n)分隔的新行上输出.此命令的示例输出如下所示:
Run Code Online (Sandbox Code Playgroud)"1","Tech-Recipes sock puppet","14.95" "2","Tech-Recipes chef's hat","18.95"请记住,输出文件必须不存在,并且用户MySQL正在运行,因为它具有对MySQL尝试将文件写入的目录的写权限.
句法
SELECT Your_Column_Name
FROM Your_Table_Name
INTO OUTFILE 'Filename.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
Run Code Online (Sandbox Code Playgroud)
或者您可以尝试通过客户端获取输出:
您可以尝试从本地客户端执行查询,并将输出重定向到本地文件目标:
mysql -user -pass -e "select cols from table where cols not null" > /tmp/output
Run Code Online (Sandbox Code Playgroud)
您可以编写以下代码来完成此任务:
SELECT ... FROM ... WHERE ...
INTO OUTFILE 'textfile.csv'
FIELDS TERMINATED BY '|'
Run Code Online (Sandbox Code Playgroud)
它将结果导出为CSV,然后将其导出到Excel工作表.
| 归档时间: |
|
| 查看次数: |
356629 次 |
| 最近记录: |