23

シェルからデータベースにクエリを実行してわかりやすい結果を得るために使用する優れたツールを知っている人はいますか?

コマンドラインで、SSH からデータベースにクエリを実行したいのですmysqlが、端末画面の書式設定がないため、結果はほとんど判読できません。

以下を実行すると、結果を理解するのが難しくなります。

use mydb;
select * from db3_settings;

phpMyAdmin または MySQLCC を使用できることはわかっていますが、コマンドライン ソリューションを探しています。

4

4 に答える 4

43

を使用すると、垂直にフォーマットされた出力を取得できます\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)
于 2013-10-08T10:53:32.237 に答える
7

結果を読みやすくする方法はいくつかあります。

limit を使用して数行のみを表示する:

SELECT * FROM table LIMIT 10;

選択した列のみを返す:

SELECT a,b,c FROM table;

\G現在のステートメントをサーバーに送信して実行し、垂直フォーマットを使用して結果を表示するためにクエリを終了します。

SELECT * FROM table \G
于 2013-10-08T10:51:41.187 に答える
2

Windows 以外のシステムでは、 を使用lessして、出力をフォーマットしたり読みやすくしたりできます。

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

SQL 出力を less にパイプして、カーソル キーで水平方向および垂直方向にスクロールできる表形式の出力を提供します。「q」を押して終了します

したくない場合は、を使用してリセットします

mysql> nopager
于 2017-11-08T06:09:20.510 に答える
1

\Gコマンド ラインでは、クエリの最後に次のように使用することで、返されたレコードの結果を (長いテーブルではなく) 個別の書式設定されたレコードとして表示することができます。

select * from <tablename> \G;
于 2016-08-24T06:18:02.230 に答える