我正在尝试使用java模仿show databases;
的输出。我想输出与此完全或非常相似的东西:
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| test |
+--------------------+
我的第一个想法是在开始打印输出之前弄清楚所有数据库名称的最大长度。但是,我不确定如何做到这一点。
我尝试select max(length(show databases));
,这是无效的语法。我确实发现我可以use
所有表并运行select length(database());
来查找名称的长度,但我相信这不是mysql输出结果的方式。
是否有其他方法可以打印输出?谢谢!
答案 0 :(得分:2)
SHOW DATABASES
是一个独立命令,不能像你一样用作参数。
使用此命令可以获得所需信息:
SELECT MAX(LENGTH(SCHEMA_NAME)) FROM information_schema.schemata;
答案 1 :(得分: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)