如何调整mysql命令行的显示设置?

时间:2010-11-26 13:27:04

标签: mysql command-line

mysql的命令行没有正确显示结果。我的意思是一些表的列位于第一行的第二行。输出也分为两行。如何调整这些设置以便正确显示结果。

5 个答案:

答案 0 :(得分:60)

您可以在SQL查询结束时使用\G命令(而不是;)...

示例:

SELECT * FROM USER \G

它将以行格式而不是列格式显示您的表格。

答案 1 :(得分:34)

大多数情况下,当它获取的行太长时会发生这种情况。尝试玩你的终端有滚动条,你甚至可以减少字体。

mysql选项是

mysql> pager less -n -i -S

答案 2 :(得分:5)

设置滚动会自动将其添加到[client]部分中的my.cnf文件中,如下所示:

[client]
pager = less -n -i -S

答案 3 :(得分:1)

在Microsoft Windows mysql命令提示符中,右键单击提示边框并选择“属性”,现在选择“布局”选项卡,然后将“窗口大小”宽度或屏幕缓冲区宽度更改为更合适的视图。这应该解决问题。 enter image description here

答案 4 :(得分:0)

我正在寻找并最终找到的另一个选项是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)

我喜欢\Gpager less -Sin选项,并使用它们。但是,通常,我需要以常规方式获得结果。使用分页器选项时,由于输出是由选定程序在MySQL外部显示的,因此不再可视地引用以前的结果,当关闭该程序时,不再显示该结果。使用\G选项,我可以轻松地比较每个记录的整体数据,但是比较记录(例如查看列以查找模式或差异)不是那么容易。

我以前要做的是删除一些列,直到结果适合窗口,然后在删除其他列的情况下重新运行查询,并在我的脑海中形成了表格的“视图”。 (不是保存表的好地方。)但是,在终端中使用MySQL时,我几乎不需要查看整列,并且可以通过编辑最后一条插入{{ 1}},在令人反感的专栏上,我又回到了自己要做的事情上,几乎没有分心或浪费时间。