【问题标题】:How can I get the length of the name of each MySQL database?如何获取每个 MySQL 数据库名称的长度?
【发布时间】:2016-04-10 17:03:18
【问题描述】:

我正在尝试使用 java 模拟 show databases; 的输出。我想输出与此完全相同或非常相似的内容:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+

我的第一个想法是在开始打印输出之前找出所有数据库名称的最大长度。但是,我不确定如何做到这一点。

我尝试了select max(length(show databases));,这是无效的语法。我确实发现我可以use 所有表并运行select length(database()); 来查找名称的长度,但我相信这不是mysql 输出结果的方式。

还有其他打印输出的方法吗?谢谢!

【问题讨论】:

    标签: java mysql output maxlength


    【解决方案1】:

    SHOW DATABASES 是一个独立命令,不能像你那样用作参数。

    使用此命令,您可以获得所需的信息:

    SELECT MAX(LENGTH(SCHEMA_NAME)) FROM information_schema.schemata;
    

    另见MySQL Documentation

    【讨论】:

      【解决方案2】:

      您必须直接查询信息架构表。试试这个

      mysql> SELECT DISTINCT(table_schema), length(table_schema) from 
      information_schema.tables;
      
      +--------------------+----------------------+
      | table_schema       | length(table_schema) |
      +--------------------+----------------------+
      | information_schema |                   18 |
      | json               |                    4 |
      | mysql              |                    5 |
      | performance_schema |                   18 |
      | sys                |                    3 |
      +--------------------+----------------------+
      5 rows in set (0.00 sec)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-11-23
        • 2021-07-10
        • 2012-03-06
        • 1970-01-01
        • 2014-03-29
        • 1970-01-01
        • 2021-11-08
        相关资源
        最近更新 更多