如何在终端中最好地显示一个返回过多字段的MySQL SELECT查询结果?
如何在终端中最好地显示一个返回过多字段的MySQL SELECT查询结果?
我正在使用PuTTY来运行:\n
mysql> SELECT * FROM sometable;
\nsometable
有很多字段,导致在终端中显示许多列。字段换行到下一行,因此很难将列标题与字段值对齐。\n有哪些在终端中查看此类数据的解决方案?\n我没有也不想要phpMyAdmin,或者其他图形界面。我正在寻找像这个将MySQL查询结果保存为文本或CSV文件的命令行解决方案。
在终端中显示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"命令行工具,并指定一些参数,我们可以在终端中以表格形式显示查询结果,并且可以使用光标键进行滚动和搜索。如果需要设置默认分页器,可以参考相关文档进行配置。
如何在终端中最佳显示返回太多字段的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。