Saya menggunakan Putty untuk menjalankan:
mysql> SELECT * FROM sometable;
sometable
memiliki banyak bidang dan ini menghasilkan banyak kolom yang berusaha ditampilkan di terminal. Bidang dibungkus ke baris berikutnya sehingga sangat sulit untuk berbaris judul kolom dengan nilai bidang.
Solusi apa yang ada untuk melihat data tersebut di terminal?
Saya tidak memiliki atau ingin akses ke phpMyAdmin - atau antarmuka GUI lainnya. Saya mencari solusi baris perintah seperti ini: Simpan hasil MySQL Query ke dalam teks atau file CVS
mysql
command-line
select
putty
Chris Jacob
sumber
sumber
Jawaban:
Hentikan permintaan dengan
\G
di tempat;
. Sebagai contoh:Kueri ini menampilkan baris secara vertikal, seperti ini:
sumber
G
harus ditulis dengan huruf besar .SELECT * FROM sometable\G
Anda mengirim string ke klien baris perintah mysql, bukan Windows, itulah sebabnyaG
case sensitivesh: 1: less: not found 44 rows in set (0.01 sec)
Anda juga mungkin menemukan ini berguna (non-Windows):
Ini akan menyalurkan outut melalui
less
alat baris perintah yang - dengan parameter ini - akan memberi Anda output tabular yang dapat digulir secara horizontal dan vertikal dengan tombol kursor.Tinggalkan tampilan ini dengan menekan
q
tombol, yang akan keluar dariless
alat.sumber
/
dan kemudian menulis string pencarian, yang juga bisa menjadi regex, dan kemudian tekan enter. Cari maju dengan menekann
dan mundur dengan menekanN
(Shift + n
).less
dapat melakukan hal-hal yang lebih keren. Menggunakan&
Anda dapat memfilter (hanya menampilkan garis yang cocok) hasilnya lebih lanjut dengan menggunakan ekspresi reguler. Ini berfungsi selain/
pencarian (yang masih akan menyebabkan penyorotan). Setel ulang filter dengan menekan&
lagi dan kemudian cukup menekan Return.Coba aktifkan mode vertikal, gunakan
\G
untuk menjalankan kueri alih-alih;
:Hasil Anda akan terdaftar dalam mode vertikal, sehingga setiap nilai kolom akan dicetak pada baris terpisah. Outputnya akan lebih sempit tapi jelas jauh lebih lama.
sumber
\G
, Anda juga dapat menggunakan\g
sebagai pengganti untuk;
, saya tahu, siapa yang akan melakukan itu, tetapi itu memberikan konteks mengapa\G
workd di tempat pertama.Menggunakan
mysql
'sego
perintahDari
mysql
'shelp
perintah:Jadi dengan menambahkan a
\G
ke Andaselect
, Anda bisa mendapatkan output vertikal yang sangat bersih:Menggunakan pager
Anda dapat memberi tahu MySQL untuk menggunakan
less
pager dengan-S
opsi yang memotong garis lebar dan memberi Anda output yang dapat Anda gulir dengan tombol panah:Jadi, lain kali Anda menjalankan perintah dengan output luas, MySQL akan membiarkan Anda menelusuri output dengan
less
pager:Jika Anda selesai dengan pager dan ingin kembali ke output reguler
stdout
, gunakan ini:sumber
Anda dapat menggunakan opsi
--table
atau-t
, yang akan menampilkan serangkaian hasil yang terlihat bagusatau metode lain untuk mengirimkan kueri ke mysql, seperti:
keluaran:
sumber
Pager default adalah stdout. Stdout memiliki batasan kolom, sehingga output akan dibungkus. Anda dapat mengatur alat lain sebagai pager untuk memformat output. Ada dua metode. Satu untuk membatasi kolom, yang lain adalah untuk memprosesnya dalam vim.
Metode pertama:
Outputnya tidak lengkap. Konten sesuai dengan layar Anda.
Yang kedua:
Setel mode vim ke nowrap di .vimrc Anda
sumber
pager cut -c -200
. Jawaban yang lebih diterima di sini mengharuskan saya untuk mengunduh dependensi yang tidak perlu.Hanya untuk melengkapi jawaban yang saya pikir paling baik, saya juga menggunakan
less -SFX
tetapi dengan cara yang berbeda: Saya suka iklankan ke.my.cnf
file saya di folder rumah saya, contoh file cnf terlihat seperti ini:Hal yang baik tentang memilikinya dengan cara ini, adalah yang
less
hanya digunakan ketika output dari sebuah query sebenarnya lebih dari satu halaman, berikut adalah penjelasan dari semua flag:Catatan: di
.my.cnf
file jangan menaruhpager
perintah di bawah[client]
kata kunci; meskipun mungkin bekerja denganmysql
baik,mysqldump
akan mengeluh tentang tidak mengenalinya.sumber
less
akan tetap berlabuh ke baris pertama dari output.Jika Anda menggunakan MySQL secara interaktif, Anda dapat mengatur pager Anda untuk digunakan
sed
seperti ini:Jika Anda tidak menggunakan
sed
pager, hasilnya seperti ini:sumber
Saya menulis
pspg
- https://github.com/okbob/pspgPager ini dirancang untuk data tabular - dan MySQL didukung juga.
sumber
Saya percaya dempul memiliki jumlah kolom maksimum yang dapat Anda tentukan untuk jendela.
Untuk Windows, saya pribadi menggunakan Windows PowerShell dan mengatur lebar buffer layar cukup tinggi. Lebar kolom tetap tetap dan Anda dapat menggunakan bilah gulir horizontal untuk melihat data. Saya memiliki masalah yang sama dengan yang Anda alami sekarang.
sunting: Untuk host jarak jauh yang harus Anda masukkan ke SSH, Anda akan menggunakan sesuatu seperti plink + Windows PowerShell
sumber
Anda dapat menggunakan
tee
untuk menulis hasil permintaan Anda ke file:sumber
Menggunakan Prompt Perintah Windows Anda dapat meningkatkan ukuran buffer jendela sebanyak yang Anda ingin melihat jumlah kolom. Ini tergantung pada tidak adanya kolom dalam tabel.
sumber