如何将MySQL查询结果存储到本地CSV文件中?我无法访问远程计算机。
答案 0 :(得分:54)
您将不得不使用命令行执行'-e'标志。
$> /usr/local/mysql/bin/mysql -u user -p -h remote.example.com -e "select t1.a,t1.b from db_schema.table1 t1 limit 10;" > hello.txt
将使用查询的输出在当前工作目录中生成本地 hello.txt 文件。
答案 1 :(得分:1)
使用mysql的concat函数
mysql -u <username> -p -h <hostname> -e "select concat(userid,',',surname,',',firstname,',',midname) as user from dbname.tablename;" > user.csv
您可以删除包含列名称的第一行&#34; user&#34;。
答案 2 :(得分:1)
我们可以使用命令行执行'-e'标志和简单的python脚本以csv格式生成结果。
创建一个python文件(名称= tab2csv)并在其中写入以下代码。
#!/usr/bin/env python
import csv
import sys
tab_in = csv.reader(sys.stdin, dialect=csv.excel_tab)
comma_out = csv.writer(sys.stdout, dialect=csv.excel)
for row in tab_in:
comma_out.writerow(row)
通过正确更新mysql凭据运行以下命令
mysql -u orch -p -h database_ip -e "select * from database_name.table_name limit 10;" | python tab2csv > outfile.csv
结果将存储在outfile.csv中。
答案 3 :(得分:0)
我正面临这个问题,我一直在寻找解决方案的时间:导入到Excel,导入访问,保存为文本文件...
我认为Windows 的最佳解决方案如下:
对于Unix / Linux 我认为最好的解决方案可能是使用这个-e选项之前说的tmarthal并通过像awk这样的处理器处理输出以获得正确的格式(CSV,xml,等等) )。
答案 4 :(得分:0)
我还没有机会针对具有困难字符的内容进行测试,但是出色的mycli可能是许多人的解决方案。
mycli --csv -e "select * from table;" mysql://user@host:port/db > file.csv
\n \T csv ; \o ~/file.csv ; select * from table1; \P
\n
禁用需要按空格才能显示每个页面的寻呼机\T csv ;
-将输出格式设置为csv \o <filename> ;
-将下一个输出追加到文件中<query> ;
\P
重新打开寻呼机答案 5 :(得分:-7)
运行MySQl查询以从您的应用生成CSV,如下所示
SELECT order_id,product_name,qty FROM orders INTO OUTFILE '/tmp/orders.csv'
FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'
它将在应用程序的tmp文件夹中创建csv文件。
然后您可以添加逻辑以通过标头发送文件。
确保数据库用户具有写入远程文件系统的权限。
答案 6 :(得分:-18)
您可以尝试:
SELECT a,b,c
FROM table_name
INTO OUTFILE '/tmp/file.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
我们在这里使用OUTFILE子句将输出存储到CSV文件中。
我们用双引号括起字段来处理其中包含逗号的字段值,我们将字段分隔开来逗号并使用换行符分隔各行。