Estoy usando PuTTY para ejecutar:
mysql> SELECT * FROM sometable;
sometable
tiene muchos campos y esto da como resultado que muchas columnas intenten mostrarse en el terminal. Los campos se ajustan a la siguiente línea, por lo que es muy difícil alinear los títulos de las columnas con los valores de los campos.
¿Qué soluciones hay para ver dichos datos en la terminal?
No tengo ni deseo acceso a phpMyAdmin, ni a ninguna otra interfaz GUI. Estoy buscando soluciones de línea de comandos como esta: guardar los resultados de MySQL Query en texto o archivo CVS
mysql
command-line
select
putty
Chris Jacob
fuente
fuente
Respuestas:
Termine la consulta con
\G
en lugar de;
. Por ejemplo:Esta consulta muestra las filas verticalmente, así:
fuente
G
debe capitalizarse.SELECT * FROM sometable\G
está enviando la cadena al cliente de línea de comando mysql, no a Windows, por lo que distingue entreG
mayúsculas y minúsculassh: 1: less: not found 44 rows in set (0.01 sec)
También puede encontrar esto útil (no solo para Windows):
Esto canalizará la salida a través de la
less
herramienta de línea de comando que, con estos parámetros, le dará una salida tabular que se puede desplazar horizontal y verticalmente con las teclas del cursor.Salga de esta vista
q
presionando la tecla, que cerrará laless
herramienta.fuente
/
presionando y luego escribe la cadena de búsqueda, que también puede ser expresiones regulares, y luego presiona enter. Busque hacia adelante presionandon
y hacia atrás presionandoN
(Shift + n
).less
puede hacer cosas aún más geniales. Usando&
puede filtrar (solo mostrar líneas coincidentes) el resultado usando expresiones regulares. Esto funciona además de la/
búsqueda (que aún causará el resaltado). Restablezca el filtro&
presionando nuevamente y luego simplemente presionando Retorno.Intente habilitar el modo vertical, utilizando
\G
para ejecutar la consulta en lugar de;
:Sus resultados se enumerarán en el modo vertical, por lo que cada valor de columna se imprimirá en una línea separada. La salida será más estrecha pero obviamente mucho más larga.
fuente
\G
, también se puede usar\g
como un reemplazo para;
, sé, quién haría eso, pero da contexto a por qué\G
funcionó en primer lugar.Usando
mysql
elego
comandoDesde
mysql
'shelp
comando:Entonces, al agregar un
\G
a suselect
, puede obtener una salida vertical muy limpia:Usando un buscapersonas
Puede decirle a MySQL que use el
less
buscapersonas con su-S
opción que corta líneas anchas y le da una salida que puede desplazar con las teclas de flecha:Por lo tanto, la próxima vez que ejecute un comando con una salida amplia, MySQL le permitirá examinar la salida con el
less
localizador:Si ha terminado con el buscapersonas y desea volver a la salida normal
stdout
, use esto:fuente
Puede usar la opción
--table
o-t
, que generará un conjunto de resultados atractivoso algún otro método para pasar una consulta a mysql, como:
salida:
fuente
El buscapersonas predeterminado es stdout. El stdout tiene la limitación de columna, por lo que la salida se ajustará. Puede configurar otras herramientas como buscapersonas para formatear la salida. Hay dos métodos Una es limitar la columna, la otra es procesarla en vim.
El primer método:
La salida no está completa. El contenido se ajusta a su pantalla.
El segundo:
Establezca el modo vim para ahora en su .vimrc
fuente
pager cut -c -200
. Las respuestas más aceptadas aquí me obligaron a descargar dependencias innecesarias.Solo para complementar la respuesta que pensé mejor, también la uso
less -SFX
pero de una manera diferente: me gusta.my.cnf
agregarlo a mi archivo en mi carpeta de inicio, un archivo cnf de ejemplo se ve así:Lo bueno de tenerlo de esta manera, es que
less
solo se usa cuando el resultado de una consulta es en realidad más de una página, aquí está la explicación de todos los indicadores:Nota: en el
.my.cnf
archivo no coloque elpager
comando debajo de la[client]
palabra clave; aunque podría funcionarmysql
bien,mysqldump
se quejará de no reconocerlo.fuente
less
permanecerá anclado a la primera línea de la salida.Si está utilizando MySQL de forma interactiva, puede configurar su localizador para que se use
sed
así:Si no lo usa
sed
como buscapersonas, la salida es así:fuente
Escribí
pspg
: https://github.com/okbob/pspgEste buscapersonas está diseñado para datos tabulares, y MySQL también es compatible.
fuente
Creo que la masilla tiene un número máximo de columnas que puede especificar para la ventana.
Para Windows, personalmente uso Windows PowerShell y configuro el ancho del búfer de pantalla razonablemente alto. El ancho de columna permanece fijo y puede usar una barra de desplazamiento horizontal para ver los datos. Tuve el mismo problema que tienes ahora.
editar: para los hosts remotos en los que tiene que usar SSH, usaría algo como plink + Windows PowerShell
fuente
Puede usar
tee
para escribir el resultado de su consulta en un archivo:fuente
Con el símbolo del sistema de Windows, puede aumentar el tamaño del búfer de la ventana tanto como desee ver el número de columnas. Esto depende del no de columnas en la tabla.
fuente