2016-04-10 10 views
0

javaを使用してshow databases;の出力を模倣しようとしています。私はこれを正確にまたは非常に類似した出力のものにしたい:各MySQLデータベースの名前の長さはどのように取得できますか?

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

私の最初のアイデアは、私は、出力の印刷を開始する前に、すべてのデータベース名の最大長さを把握することでした。しかし、私はどのようにそれを行うことができるか分からない。

select max(length(show databases));は有効な構文ではありませんでした。私はuseすべてのテーブルがあり、select length(database());を実行して名前の長さを調べることができたが、それは結果を出力するためにmysqlが行うものではないと信じている。

出力を印刷するもう1つの方法はありますか?ありがとう!

答えて

2

SHOW DATABASESは、コマンドです。スタンドアロンのコマンドであり、実行時に引数として使用することはできません。あなたが必要な情報を取得、このコマンドで

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

は、あなたが直接、情報スキーマのテーブルを照会する必要がMySQL Documentation

+0

ありがとうございます!これは機能します。 –

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) 
+0

ありがとう!これは機能します。 –

関連する問題