Я использую PuTTY для запуска:
mysql> SELECT * FROM sometable;
sometable
имеет много полей, и это приводит к тому, что многие столбцы пытаются отображаться в терминале. Поля переносятся на следующую строку, поэтому очень трудно выровнять заголовки столбцов со значениями полей.
Какие есть решения для просмотра таких данных в терминале?
У меня нет ни доступа к phpMyAdmin, ни к любым другим интерфейсам GUI. Я ищу решения командной строки, такие как это: Сохранить результаты MySQL Query в текстовый файл или файл CVS
mysql
command-line
select
putty
Крис Джейкоб
источник
источник
Ответы:
Завершить запрос с
\G
вместо;
. Например:Этот запрос отображает строки вертикально, например:
источник
G
должно быть написано заглавными буквами.SELECT * FROM sometable\G
вы отправляете строку клиенту командной строки mysql, а не Windows, именно поэтомуG
он чувствителен к региструsh: 1: less: not found 44 rows in set (0.01 sec)
Вы также можете найти это полезным (не только для Windows):
Это передаст результат через
less
инструмент командной строки, который - с этими параметрами - даст вам табличный вывод, который можно прокручивать по горизонтали и вертикали с помощью клавиш курсора.Оставьте этот вид, нажав
q
клавишу, которая закроетless
инструмент.источник
/
а затем вводом строки поиска, которая также может быть регулярными выражениями, и затем нажмите ввод. Поиск вперед, нажавn
и назад, нажавN
(Shift + n
).less
может сделать еще больше классных вещей. Используя его,&
вы можете фильтровать (показывать только совпадающие строки) результат, используя регулярные выражения. Это работает в дополнение к/
поиску (который все равно вызовет выделение). Сбросьте фильтр,&
снова нажав, а затем просто нажав Return.Попробуйте включить вертикальный режим, используя
\G
для выполнения запроса вместо;
:Ваши результаты будут перечислены в вертикальном режиме, поэтому значение каждого столбца будет напечатано в отдельной строке. Вывод будет уже, но, очевидно, намного дольше.
источник
\G
, вы также можете использовать\g
в качестве замены;
, я знаю, кто будет это делать, но это дает контекст для того, почему\G
работал в первую очередь.Использование
mysql
«Sego
командыИз
mysql
«Shelp
команды:Таким образом, добавив
\G
к вашемуselect
, вы можете получить очень чистый вертикальный вывод:Используя пейджер
Вы можете указать MySQL использовать
less
пейджер с его-S
опцией, которая обрезает широкие строки и дает вывод, который вы можете прокручивать с помощью клавиш со стрелками:Таким образом, в следующий раз, когда вы запустите команду с широким выводом, MySQL позволит вам просмотреть вывод с помощью
less
пейджера:Если вы закончили с пейджером и хотите вернуться к обычному выводу
stdout
, используйте это:источник
Вы можете использовать опцию
--table
или-t
, которая выдаст приятный набор результатовили другой метод для передачи запроса в MySQL, например:
вывод:
источник
Пейджером по умолчанию является стандартный вывод. Stdout имеет ограничение на столбцы, поэтому вывод будет перенесен. Вы можете установить другие инструменты как пейджер для форматирования вывода. Есть два метода. Один - ограничить столбец, другой - обработать его в vim.
Первый способ:
Вывод не завершен. Содержание соответствует вашему экрану.
Второй:
Установите режим vim для nowrap в вашем .vimrc
источник
pager cut -c -200
, Более принятые ответы требовали от меня загрузки ненужных зависимостей.Просто чтобы дополнить ответ, который я считал лучшим, я тоже использую,
less -SFX
но по-другому: мне нравится.my.cnf
добавлять его в мой файл в моей домашней папке, пример файла cnf выглядит так:Хорошая вещь о том, чтобы иметь это таким образом, это то, что
less
он используется только тогда, когда вывод запроса на самом деле занимает более одной страницы, вот объяснение всех флагов:Примечание: в
.my.cnf
файле не ставьтеpager
команду под[client]
ключевым словом; хотя это может работатьmysql
хорошо,mysqldump
будет жаловаться на то, что не признает это.источник
less
он останется привязанным к первой строке вывода.Если вы используете MySQL в интерактивном режиме, вы можете настроить свой пейджер
sed
так:Если вы не используете
sed
в качестве пейджера, вывод будет следующим:источник
Я написал
pspg
- https://github.com/okbob/pspgЭтот пейджер предназначен для табличных данных - и MySQL также поддерживается.
источник
Я полагаю, что замазка имеет максимальное количество столбцов, которые вы можете указать для окна.
Для Windows я лично использую Windows PowerShell и устанавливаю достаточно большую ширину буфера экрана. Ширина столбца остается фиксированной, и вы можете использовать горизонтальную полосу прокрутки для просмотра данных. У меня была та же проблема, что и у тебя сейчас.
редактировать: для удаленных хостов, которые вы должны использовать SSH, вы должны использовать что-то вроде plink + Windows PowerShell
источник
Вы можете использовать,
tee
чтобы записать результат вашего запроса в файл:источник
Используя командную строку Windows, вы можете увеличить размер буфера окна, насколько вы хотите видеть количество столбцов. Это зависит от количества столбцов в таблице.
источник