Używam PuTTY do uruchamiania:
mysql> SELECT * FROM sometable;
sometable
ma wiele pól, co powoduje, że wiele kolumn próbuje wyświetlić się w terminalu. Pola zawijają się do następnego wiersza, więc bardzo trudno jest wyrównać tytuły kolumn z wartościami pól.
Jakie są rozwiązania do przeglądania takich danych w terminalu?
Nie mam ani nie chcę dostępu do phpMyAdmin - ani żadnych innych interfejsów GUI. Szukam rozwiązań wiersza polecenia, takich jak to: Zapisz wyniki zapytania MySQL w pliku tekstowym lub CVS
mysql
command-line
select
putty
Chris Jacob
źródło
źródło
Odpowiedzi:
Zakończ zapytanie za pomocą
\G
zamiast;
. Na przykład:To zapytanie wyświetla wiersze w pionie, jak poniżej:
źródło
G
musi to być wielkie litery.SELECT * FROM sometable\G
wysyłasz ciąg do klienta wiersza poleceń mysql, a nie systemu Windows, dlategoG
rozróżniana jest wielkość litersh: 1: less: not found 44 rows in set (0.01 sec)
Może się to również przydać (tylko inne niż Windows):
Spowoduje to przepuszczenie outut przez
less
narzędzie wiersza poleceń, które - przy tych parametrach - da ci tabelaryczne dane wyjściowe, które można przewijać poziomo i pionowo za pomocą klawiszy kursora.Opuść ten widok, naciskając
q
klawisz, który zamknieless
narzędzie.źródło
/
a następnie napisanie szukanego ciągu, który może być również wyrażeniem regularnym, a następnie naciśnięcie enter. Wyszukaj do przodu, naciskającn
i do tyłu, naciskającN
(Shift + n
).less
może robić jeszcze więcej fajnych rzeczy. Za pomocą&
możesz filtrować (wyświetlać tylko pasujące linie) wynik dalej za pomocą wyrażeń regularnych. Działa to oprócz/
wyszukiwania (które nadal spowoduje podświetlenie). Zresetuj filtr, naciskając&
ponownie, a następnie naciskając klawisz Return.Spróbuj włączyć tryb pionowy, używając
\G
do wykonania zapytania zamiast;
:Wyniki zostaną wyświetlone w trybie pionowym, więc każda wartość kolumny zostanie wydrukowana w osobnym wierszu. Wydajność będzie węższa, ale oczywiście znacznie dłuższa.
źródło
\G
, możesz również użyć\g
jako zamiennik;
, wiem, kto by to zrobił, ale daje kontekst, dlaczego\G
w ogóle pracował.Korzystanie
mysql
„sego
polecenieZ
mysql
„shelp
polecenia:Dołączając a
\G
do swojegoselect
, możesz uzyskać bardzo czysty pionowy wynik:Korzystanie z pagera
Możesz powiedzieć MySQL, aby używał
less
pagera z-S
opcją, która tnie szerokie linie i daje wynik, który możesz przewijać za pomocą klawiszy strzałek:Zatem następnym razem, gdy uruchomisz polecenie z szerokim wyjściem, MySQL pozwoli ci przeglądać dane wyjściowe za pomocą
less
pagera:Jeśli skończyłeś z pageriem i chcesz wrócić do zwykłego wyjścia
stdout
, użyj tego:źródło
Możesz użyć opcji
--table
lub-t
, która wygeneruje ładnie wyglądający zestaw wynikówlub inna metoda przekazania zapytania do mysql, na przykład:
wynik:
źródło
Domyślny pager to standardowe wyjście. Stdout ma ograniczenie kolumny, więc wyjście zostanie zawinięte. Możesz ustawić inne narzędzia jako pager do formatowania danych wyjściowych. Istnieją dwie metody. Jednym z nich jest ograniczenie kolumny, drugim jest przetworzenie jej w vimie.
Pierwsza metoda:
Dane wyjściowe nie są kompletne. Treść pasuje do twojego ekranu.
Drugie:
Ustaw tryb vim na nowrap w swoim .vimrc
źródło
pager cut -c -200
. Bardziej akceptowane odpowiedzi wymagały ode mnie pobrania niepotrzebnych zależności.Aby uzupełnić odpowiedź, którą uważałem za najlepszą, używam również,
less -SFX
ale w inny sposób: lubię reklamować go w moim.my.cnf
pliku w folderze domowym, przykładowy plik cnf wygląda następująco:Zaletą posiadania tego w ten sposób jest to, że
less
jest używane tylko wtedy, gdy wynik zapytania jest w rzeczywistości dłuższy niż jedna strona, oto wyjaśnienie wszystkich flag:Uwaga: w
.my.cnf
pliku nie umieszczajpager
polecenia pod[client]
słowem kluczowym; chociaż możemysql
dobrze działać ,mysqldump
będzie narzekać na nieuznawanie go.źródło
less
pozostanie zakotwiczony w pierwszym wierszu wyniku.Jeśli korzystasz z MySQL interaktywnie, możesz ustawić swój pager w
sed
taki sposób:Jeśli nie używasz go
sed
jako pager, wynik wygląda następująco:źródło
Napisałem
pspg
- https://github.com/okbob/pspgTen pager jest przeznaczony do danych tabelarycznych - obsługiwany jest także MySQL.
źródło
Wierzę, że kit ma maksymalną liczbę kolumn, które można określić dla okna.
W systemie Windows osobiście korzystam z programu Windows PowerShell i ustawiam szerokość bufora ekranu na dość wysoką. Szerokość kolumny pozostaje stała i można użyć poziomego paska przewijania, aby wyświetlić dane. Miałem ten sam problem, co teraz.
edycja: W przypadku hostów zdalnych, do których musisz włączyć SSH, użyj czegoś takiego jak plink + Windows PowerShell
źródło
Możesz użyć
tee
do zapisania wyniku zapytania do pliku:źródło
Za pomocą wiersza polecenia systemu Windows można zwiększyć rozmiar bufora okna tak, aby zobaczyć liczbę kolumn. Zależy to od liczby kolumn w tabeli.
źródło