将MySQL的漂亮表格格式作为标准输出

13

当我在MySQL的命令行解释器中执行SELECT查询时,会得到一个漂亮的ASCII表格:

+----+------+
| id | name |
+----+------+
|  1 | Bob  |
|  2 | Mary |
|  3 | Jane |
|  4 | Lisa |
+----+------+

但是,如果我把结果导出到其他地方(例如echo "SELECT ..." | mysql),就只能得到一个单调乏味的制表符分隔格式。

如何在标准输出中获得这种漂亮的表格格式?

2个回答

31
您可以在mysql命令中使用-t--table开关,例如:
$ echo "SELECT ..." | mysql -t | cowsay -n
 _______________
/ +----+------+ \
| | id | name | |
| +----+------+ |
| |  1 | Bob  | |
| |  2 | Mary | |
| |  3 | Jane | |
| |  4 | Lisa | |
\ +----+------+ /
 ---------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

2
谢谢!不知道我在手册中是怎么错过了这个。对于cowsay来说,加一分。 - a paid nerd

3

试试这个:

$ mysql -uyourUsername -pyourPassword -te 'SELECT * FROM aTable' aDatabase
+----+------+
| id | name |
+----+------+
|  1 | Bob  |
|  2 | Mary |
|  3 | Jane |
|  4 | Lisa |
+----+------+

用户'aPaidNerd'@'10.32.60.170'访问被拒绝 ;) - a paid nerd
这怎么帮助解决问题呢?如果你将输出管道到 | cat 或其他地方,你会发现没有表格 - 除非你提供 -t--table - glglgl
你说得太对了!实际发送到标准输出的内容并不完全是你在控制台看到的。我已经更新了我的答案以反映你的评论。 - Mosty Mostacho
1
太好了。我把我的-1替换成了+1 :-) - glglgl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接