如何调整mysql命令行的显示设置?
Posted
技术标签:
【中文标题】如何调整mysql命令行的显示设置?【英文标题】:How to adjust display settings of mysql command line? 【发布时间】:2010-11-26 13:27:03 【问题描述】:mysql 的命令行没有正确显示结果。我的意思是表格的某些列在第一行,一些在第二行。输出也分为两行。如何调整这些设置以使其正确显示结果。
【问题讨论】:
这是由空格引起的。您可以使用\G
代替;
。或输入help;
@ajreal,thanX,暂时,\G 很好。虽然有一些设置选项可以调整。
我昨天发布了一个类似的问题,请参阅***.com/questions/4278592/…
【参考方案1】:
您可以在 SQL 查询结束时使用\G
命令(而不是;
)...
例子:
SELECT * FROM USER \G
它将以行形式而不是列形式显示您的表格。
【讨论】:
thanX,暂时,\G 很好。虽然有一些设置选项可以调整。 太美了!【参考方案2】:这通常发生在它获取的行太长时。尝试使用终端来设置滚动条,甚至可以减少字体。
mysql选项是
mysql> pager less -n -i -S
【讨论】:
这很好但我们必须注意it works only on UNIX or Linux platforms。 你知道如何自动设置这些设置吗? 这太棒了。我已经使用 MySQL 多年,从来没有费心去查找如何处理太长的表,除了使用 '\G',这并不总是很方便。谢谢。 mysql> 少寻呼机 -n -i -S -> ; ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行 mysql> 的 'pager less -n -i -S' 附近使用正确的语法 这很棒。 -S 使长于屏幕宽度的行被截断而不是折叠。结果是每行一行。更容易阅读。在 Mac 终端中,右箭头键甚至会显示被“切碎”的部分。【参考方案3】:要设置自动滚动,请将其添加到 [client] 部分的 my.cnf 文件中,如下所示:
[client]
pager = less -n -i -S
【讨论】:
【参考方案4】:在 Microsoft Windows mysql 命令提示符中,右键单击提示框并选择属性,现在选择布局选项卡并将窗口大小宽度或屏幕缓冲区宽度更改为更合适的视图。那应该可以解决问题。
【讨论】:
【参考方案5】:我一直在寻找并最终找到的另一个选项是 MySQL 字符串函数LEFT()
。
LEFT(
str
,
len
)
从字符串 str 或 NULL 返回最左边的 len 个字符如果任何参数为 NULL。
例如...
mysql> SELECT
-> `bib`,
-> `name_id` AS `Print`,
-> `code`,
-> `name_en` AS `EN`,
-> `name_fr` AS `FR`,
-> `name_de` AS `DE`,
-> `Id`
-> FROM `iso639_Language`
-> WHERE `Id` LIKE 'in%'
-> ORDER BY `bib`;
+-----+------------------------------------------------------------+------+------------------------------------------------------------+------------------------------------------------+------------------+-----+
| bib | Print | code | EN | FR | DE | Id |
+-----+------------------------------------------------------------+------+------------------------------------------------------------+------------------------------------------------+------------------+-----+
| ina | Interlingua (International Auxiliary Language Association) | ia | Interlingua (International Auxiliary Language Association) | interlingua (langue auxiliaire internationale) | Interlingua | ina |
| ind | Indonesian | id | Indonesian | indonésien | Bahasa Indonesia | ind |
| inh | Ingush | NULL | Ingush | ingouche | Inguschisch | inh |
+-----+------------------------------------------------------------+------+------------------------------------------------------------+------------------------------------------------+------------------+-----+
3 rows in set (0.01 sec)
...变成...
mysql> SELECT
-> `bib`,
-> LEFT(`name_id`,15) AS `Print`,
-> `code`,
-> LEFT(`name_en`,10) AS `EN`,
-> LEFT(`name_fr`,10) AS `FR`,
-> LEFT(`name_de`,10) AS `DE`,
-> `Id`
-> FROM `iso639_Language`
-> WHERE `Id` LIKE 'in%'
-> ORDER BY `bib`;
+-----+-----------------+------+------------+-------------+------------+-----+
| bib | Print | code | EN | FR | DE | Id |
+-----+-----------------+------+------------+-------------+------------+-----+
| ina | Interlingua (In | ia | Interlingu | interlingu | Interlingu | ina |
| ind | Indonesian | id | Indonesian | indonésien | Bahasa Ind | ind |
| inh | Ingush | NULL | Ingush | ingouche | Inguschisc | inh |
+-----+-----------------+------+------------+-------------+------------+-----+
3 rows in set (0.00 sec)
我确实喜欢\G
和pager less -Sin
选项,并使用它们。但是,我通常需要以正常方式获得结果。使用寻呼机选项,我失去了以视觉方式引用先前结果的能力,因为输出由所选程序在 MySQL 外部显示,并且在该程序关闭时不再显示。使用\G
选项,我可以轻松地将每条记录的数据作为一个整体进行比较,但是比较记录(例如查看列以查找模式或差异)并不那么容易。
我以前所做的是删除一些列,直到结果适合窗口,然后在删除其他列的情况下重新运行查询,并在我的脑海中形成表格的“视图”。 (不是保存表格的好地方。)我很少需要查看整个列,但是,在终端中使用 MySQL 时,可以通过编辑最后一个命令插入 @987654333 来选择性地减少查询中过长的列@ 在违规的专栏周围,我又回到了做我需要做的事情,几乎没有分心或浪费时间。
【讨论】:
以上是关于如何调整mysql命令行的显示设置?的主要内容,如果未能解决你的问题,请参考以下文章