如何在终端中最好地显示一个返回过多字段的MySQL SELECT查询结果?

24 浏览
0 Comments

如何在终端中最好地显示一个返回过多字段的MySQL SELECT查询结果?

我正在使用PuTTY来运行:\n

mysql> SELECT * FROM sometable;

\nsometable有很多字段,导致在终端中显示许多列。字段换行到下一行,因此很难将列标题与字段值对齐。\n有哪些在终端中查看此类数据的解决方案?\n我没有也不想要phpMyAdmin,或者其他图形界面。我正在寻找像这个将MySQL查询结果保存为文本或CSV文件的命令行解决方案。

0
0 Comments

在终端中显示MySQL SELECT返回的太多字段的最佳方法是什么?

有两种方法可以解决这个问题。第一种方法是使用mysql的ego命令,该命令可以以垂直方式显示结果。只需在select语句的末尾添加\G即可实现垂直输出。

另一种方法是使用分页器。可以告诉MySQL使用less分页器,并使用-S选项来截断宽行,然后使用箭头键滚动输出。这样,下次运行具有宽输出的命令时,MySQL将允许您使用less分页器浏览输出。如果想要回到标准的stdout输出,可以使用nopager命令。

以上两种方法都可以解决在终端中显示MySQL SELECT返回的太多字段的问题。

0
0 Comments

在终端中显示MySQL SELECT返回太多字段的最佳方法

当我们在终端中使用MySQL SELECT语句查询数据库时,如果返回的结果集包含太多的字段,可能会导致终端显示不完整或混乱。这时我们需要找到一种最佳的方法来在终端中显示这些结果。

一种解决方法是使用"pager"命令将输出通过管道传递给"less"命令行工具,并指定一些参数来获得可以使用光标键水平和垂直滚动的表格形式的输出。具体操作如下:

mysql> pager less -SFX
mysql> SELECT * FROM sometable;

上述命令将查询结果通过"less"命令进行分页处理,并使用"-SFX"参数来获得可以水平和垂直滚动的表格形式的输出。可以使用光标键来滚动输出内容。按下"q"键退出"less"工具。

此外,我们还可以使用"/"进行搜索,输入搜索字符串后按下回车进行搜索,按下"n"键向前搜索,按下"N"键向后搜索。使用"&"键可以进一步过滤匹配的行,使用正则表达式进行搜索。按下"&"键再次重置过滤器,然后按下回车键。

如果我们想要将这些设置作为默认设置,可以参考stackoverflow上的链接(stackoverflow.com/questions/5611974/...)来设置MySQL客户端的默认分页器。可以将"pager = less -SFX"添加到"my.conf"配置文件中进行持久化设置。

如果我们想要重置这些设置,可以使用"nopager"命令。但是有用户反馈在使用Rails Pry控制台时重置之后仍然会使用"less"进行格式化输出,这时可以尝试查找Rails Pry的配置文件,并进行相应的调整。

总结起来,通过使用"pager"命令将MySQL查询结果通过管道传递给"less"命令行工具,并指定一些参数,我们可以在终端中以表格形式显示查询结果,并且可以使用光标键进行滚动和搜索。如果需要设置默认分页器,可以参考相关文档进行配置。

0
0 Comments

如何在终端中最佳显示返回太多字段的MySQL SELECT?

问题原因:当使用MySQL SELECT语句返回太多字段时,在终端中显示这些字段会导致显示效果不佳。

解决方法:在查询语句的末尾使用\G替代;。例如:

SELECT * FROM sometable\G

这个查询会垂直显示行,如下所示:

*************************** 1. row ***************************
                 Host: localhost
                   Db: mydatabase1
                 User: myuser1
          Select_priv: Y
          Insert_priv: Y
          Update_priv: Y
          ...
*************************** 2. row ***************************
                 Host: localhost
                   Db: mydatabase2
                 User: myuser2
          Select_priv: Y
          Insert_priv: Y
          Update_priv: Y
          ...

需要注意的是,尽管Windows不区分大小写,但G必须大写。

补充说明:当您键入SELECT * FROM sometable\G时,您将字符串发送给mysql命令行客户端,而不是Windows,这就是为什么G区分大小写的原因。

然而,这种方法对于大量记录并不适用。

相关文档中指出:"ego (\G) Send command to mysql server, display result vertically.Be careful about defining a delimiter that might occur within other words. For example, if you define the delimiter as X, you will be unable to use the word INDEX in statements."

我遇到了这个问题。请告诉我如何解决这个问题?sh: 1: less: not found 44 rows in set (0.01 sec)

您的默认分页程序设置为less,但您没有安装它。请安装它或更改分页程序。

我遇到了以下错误。(注意-使用Postgresql。有人能建议如何在Postgresql中实现相同的效果吗)select * from my_table \G invalid command \G Try \? for help.

对于psql,您可以在sql命令之前使用\x将输出设置为键值对而不是表格形式。参考:stackoverflow.com/a/26040852

0