23

有谁知道从 shell 中使用一个很好的工具来查询数据库并获得可理解的结果

在命令行上,我想从 SSH 查询数据库,mysql但结果几乎不可读,因为终端屏幕没有格式。

如果我运行以下命令,则很难理解结果。

use mydb;
select * from db3_settings;

我知道我可以使用 phpMyAdmin 或 MySQLCC,但我正在寻找命令行解决方案。

4

4 回答 4

43

您可以使用\G.

这是标准输出:

mysql> select * from tblSettings;
+-----------+----------------+---------------------+
| settingid | settingname    | settingvalue        |
+-----------+----------------+---------------------+
|         1 | maxttl         | 30                  |
|         2 | traceroutepath | /usr/bin/traceroute |
|         3 | alertemail     | me@host.com         |
+-----------+----------------+---------------------+
3 rows in set (0.00 sec)

这就是输出的样子\G

mysql> select * from tblSettings \G;
*************************** 1. row ***************************
   settingid: 1
 settingname: maxttl
settingvalue: 30
*************************** 2. row ***************************
   settingid: 2
 settingname: traceroutepath
settingvalue: /usr/bin/traceroute
*************************** 3. row ***************************
   settingid: 3
 settingname: alertemail
settingvalue: me@host.com
3 rows in set (0.00 sec)
于 2013-10-08T10:53:32.237 回答
7

有多种方法可以使结果更具可读性。

使用限制仅查看几行:

SELECT * FROM table LIMIT 10;

仅返回选择列:

SELECT a,b,c FROM table;

终止查询\G以将当前语句发送到服务器以执行并使用垂直格式显示结果:

SELECT * FROM table \G
于 2013-10-08T10:51:41.187 回答
2

对于非 Windows 系统,您可以使用less使输出格式化或更易读。

mysql > pager less -SFX;
mysql > select * from databasename.table;

它将 sql 输出通过管道传递给 less,提供可以使用光标键水平和垂直滚动的表格输出。按“q”退出

如果您不想要,请使用重置

mysql> nopager
于 2017-11-08T06:09:20.510 回答
1

在命令行中,您可以\G在查询结束时使用,将返回记录的结果显示为单独的格式化记录(而不是长表),如下所示:

select * from <tablename> \G;
于 2016-08-24T06:18:02.230 回答