324

私はPuTTYを使用して実行しています:

mysql> SELECT * FROM sometable;

sometableには多くのフィールドがあり、これにより多くの列が端末に表示されようとします。フィールドは次の行に折り返されるため、列のタイトルとフィールド値を並べるのは非常に困難です。

そのようなデータを端末で表示するためのソリューションは何ですか?

phpMyAdmin やその他の GUI インターフェイスへのアクセス権を持っていませんし、アクセスしたくもありません。次のようなコマンドライン ソリューションを探しています: Save MySQL Query results into text or CVS file

4

12 に答える 12

684

\G の代わりに を 使用してクエリを終了します;。例えば:

SELECT * FROM sometable\G

このクエリは、次のように行を垂直に表示します。

*************************** 1. row ***************************
                 Host: localhost
                   Db: mydatabase1
                 User: myuser1
          Select_priv: Y
          Insert_priv: Y
          Update_priv: Y
          ...
*************************** 2. row ***************************
                 Host: localhost
                   Db: mydatabase2
                 User: myuser2
          Select_priv: Y
          Insert_priv: Y
          Update_priv: Y
          ...
于 2009-05-29T07:16:15.777 に答える
390

これも役に立つかもしれません (非 Windows のみ):

mysql> pager less -SFX
mysql> SELECT * FROM sometable;

これにより、コマンド ライン ツールを介して出力がパイプ処理され、lessこれらのパラメーターを使用して、カーソル キーで水平方向および垂直方向にスクロールできる表形式の出力が得られます。

qキーを押してこのビューを終了すると、lessツールが終了します。

于 2011-06-21T08:54:33.473 に答える
50

\Gの代わりにクエリを実行するために使用して、垂直モードを有効にしてみてください;

mysql> SELECT * FROM sometable \G

結果は垂直モードで表示されるため、各列の値は別の行に出力されます。出力は狭くなりますが、明らかに長くなります。

于 2009-05-29T07:16:31.313 に答える
32

--tableorオプションを使用する-tと、見栄えの良い一連の結果が出力されます。

echo 'desc table_name' | mysql -uroot database -t

または、次のようなクエリを mysql に渡す他の方法:

mysql -uroot table_name --table < /tmp/somequery.sql

出力:

+--------------+--------------+------+-----+---------+----------------+
| Field        | Type         | Null | Key | Default | Extra          |
+--------------+--------------+------+-----+---------+----------------+
| id           | int(11)      | NO   | PRI | NULL    | auto_increment |
| username     | varchar(30)  | NO   | UNI | NULL    |                |
| first_name   | varchar(30)  | NO   |     | NULL    |                |
| last_name    | varchar(30)  | NO   |     | NULL    |                |
| email        | varchar(75)  | NO   |     | NULL    |                |
| password     | varchar(128) | NO   |     | NULL    |                |
| is_staff     | tinyint(1)   | NO   |     | NULL    |                |
| is_active    | tinyint(1)   | NO   |     | NULL    |                |
| is_superuser | tinyint(1)   | NO   |     | NULL    |                |
| last_login   | datetime     | NO   |     | NULL    |                |
| date_joined  | datetime     | NO   |     | NULL    |                |
+--------------+--------------+------+-----+---------+----------------+
于 2012-05-09T19:26:18.667 に答える
0

teeクエリの結果をファイルに書き込むために使用できます。

tee somepath\filename.txt
于 2013-01-04T04:12:34.720 に答える
0

パテには、ウィンドウに指定できる列の最大数があると思います。

Windows の場合、私は個人的に Windows PowerShell を使用し、画面バッファーの幅を適度に高く設定しています。列幅は固定されたままで、水平スクロール バーを使用してデータを表示できます。私はあなたが今抱えているのと同じ問題を抱えていました。

編集: SSH で接続する必要があるリモート ホストの場合は、plink + Windows PowerShell などを使用します。

于 2009-05-29T07:20:59.917 に答える
-2

Windows コマンド プロンプトを使用すると、ウィンドウのバッファ サイズを増やして、列数を表示することができます。これは、テーブル内の列の数によって異なります。

于 2013-01-04T05:21:31.900 に答える