【发布时间】:2013-01-08 21:20:26
【问题描述】:
我正在尝试创建一个文件并将我的查询结果存储在其中。我有一个包含单个查询的批处理文件,
USE database1;
SELECT * FROM table WHERE name = "abc" INTO OUTFILE output.txt;
QUIT
执行这个批处理文件使用,
mysql -u root -p -t -vvv < select.sql
但是,结果不是表格格式,顶部缺少字段名称。
100 abc Brown 32
101 abc Flair 25
102 abc McDonald 45
.
.
.
如果我删除 INTO OUTFILE 语句并在终端上打印结果,那么工作正常。
+----+------+---------+-----+
| id | name | surname | age |
+----+------+---------+-----+
| 100| abc | Brown | 32|
| 101| abc | Flair | 25|
| 102| abc | McDonald| 45|
+----+------+---------+-----+
如何在 txt 文件中实现上述功能?
更新
特别感谢 GreyBeardedGeek。这是在 GreyBeardedGeek 的帮助下解决此问题的方法。
批处理文件:
USE database1;
SELECT * FROM table WHERE name = "abc";
QUIT
和mysql客户端:
mysql -u root -p -t -vvv < select.sql > output.txt
【问题讨论】:
-
删除INTO outfile,然后执行:mysql -u root -p -t -vvv
output.txt -
好的!嗯......我在这里失去了理智!正在工作,但为什么?有什么不同?非常感谢:)
-
INTO OUTFILE 更改默认输出,但它具有引用值、行分隔符等选项。
-
因此,如果您想存储 csv 文件,INTO OUTFILE 很有用。并选择分隔符等。我是对的吗?
-
如果你在 Linux 上,通过 sed '1 d' 传递结果,例如mysql -u root -p -t -vvv output.txt
标签: mysql formatting batch-processing