【问题标题】:MySQL Linux command line tool and properly formatted results [duplicate]MySQL Linux命令行工具和正确格式化的结果[重复]
【发布时间】:2013-10-15 06:07:18
【问题描述】:

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

在命令行上,通过 SSH,我想使用 mysql 查询数据库,但结果几乎无法读取,因为终端屏幕没有格式。

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

use mydb;
select * from db3_settings;

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

【问题讨论】:

    标签: mysql select command-line


    【解决方案1】:

    您可以通过多种方式使结果更具可读性。

    使用限制只查看几行:

    SELECT * FROM table LIMIT 10;
    

    只返回选择列:

    SELECT a,b,c FROM table;
    

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

    SELECT * FROM table \G
    

    【讨论】:

      【解决方案2】:

      您可以使用\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)
      

      【讨论】:

      • 包含\G 的含义会很有用,而且我相信\G 是一个终止符,因此您不需要分号来终止它,否则需要额外的查询。跨度>
      【解决方案3】:

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

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

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

      如果你不想要,使用重置

      mysql> nopager
      

      【讨论】:

        【解决方案4】:

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

        select * from <tablename> \G;
        

        【讨论】:

        • 此答案已被标记为低质量。如果它回答了问题,请考虑添加一些文字来解释它是如何工作的。
        猜你喜欢
        • 1970-01-01
        • 2011-07-11
        • 1970-01-01
        • 2021-03-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-18
        • 2023-03-23
        相关资源
        最近更新 更多