2010-12-03 11 views
45

Estoy usando MySQL Workbench CE 5.2.30 CE/Rev 6790. Cuando ejecute la siguiente instrucción:¿Cómo puedo ver blobs directamente en MySQL Workbench

SELECT OLD_PASSWORD("test") 

solo me dan la espalda un buen BLOB icono, tengo que hacer clic izquierdo para seleccionar la celda, haga clic derecho y elegir la opción "Open Value en el visor" y seleccione la opción "Texto" lengüeta.

Usando lo mismo con phpMyAdmin, obtengo de vuelta directamente el valor de la llamada OLD_PASSWORD. Es solo un ejemplo, pero ¿hay alguna manera de ver directamente esos resultados en la salida?

+0

Asegúrese de verificar mi respuesta a continuación - upvoted 41 veces - todavía estoy (3 años después) para que la gente que Upvote se . – spioter

+0

@spioter gracias por el recordatorio, hecho! Aunque no lo probé ya que no lo estoy usando actualmente. – mark

+0

gracias marca! No sé por qué simplemente asumí que el asker original ni siquiera vería mi comentario, simplemente lo estaba poniendo como un puntero para futuros espectadores: "p ¡Salud!". – spioter

Respuesta

79

En resumen:

  1. Ir a Editar> Preferencias
  2. Elija SQL Editor
  3. Bajo SQL Ejecución, comprobar Treat BINARIO/VARBINARY como no binario cadena de caracteres
  4. Restart MyS QL Workbench (no se le preguntará ni se le informará sobre este requisito).

Con esta configuración podrá concatenar campos sin recibir blobs.

Creo que esto se aplica a las versiones 5.2.22 y posteriores y es el resultado de this MySQL bug.

Descargo de responsabilidad: No sé cuál es la desventaja de esta configuración - tal vez cuando esté seleccionando BINARY/VARBINARY valores lo verá como texto sin formato que puede ser engañoso y/o puede obstaculizar el rendimiento si son ¿lo suficientemente grande?

+0

FYI: en la versión 5.2.39 de MySQL Workbench, es "Editor SQL", no "Consultas SQL". – GDICommander

+1

No funciona con la versión 5.2.39 CE de MySQL Workbench. – GDICommander

+0

en 5.2.44 CE rev 9933 el código publicado por el póster original muestra los datos correctamente. Estoy bastante seguro de que la configuración relevante es "Tratar BINARY/VARBINARY como cadena de caracteres no binarios" a la que se puede acceder a través de: Editar/Preferencias/Consultas SQL (en la sección "Resultados de la consulta") Esta configuración debe verificarse - No puedo recordar si fue marcado por defecto – spioter

5

no parece ser posible me temo, está catalogado como un error en la mesa de trabajo: http://bugs.mysql.com/bug.php?id=50692 Sería muy útil, aunque!

+0

Esta ya no es la respuesta correcta (desde 5.2.22). Vea la respuesta de spioter a continuación. – htxryan

4

tenían el mismo problema, según the MySQL documentation, puede seleccionar una subcadena de un BLOB:

SELECT id, SUBSTRING(comment,1,2000) FROM t 

HTH, glissi

15

No estoy seguro de si esto responde a la pregunta, pero si si Haga clic derecho en el ícono "blob" en el campo (cuando vea la tabla) hay una opción para "Abrir valor en el Editor". Una de las pestañas te permite ver el blob. Esto está en ver. 5.2.34

+0

naa..i lo intenté. No funciona para mí. \ –

+0

Funciona a la perfección. Esto debería ser aceptado ya que no requiere ningún cambio de configuración. –

+0

Para agregar a esto. A mi también me funciona. Cuando hace clic en Abrir valor en el Editor, muestra los valores binarios de forma predeterminada. pero si notas que hay una pestaña que dice 'Texto'. Esa pestaña muestra los valores correctos en formato de texto. :) –

10

la fundición funciona, pero es un problema, por lo que recomendaría usar el método de Spioter a menos que esté utilizando una gran cantidad de datos verdaderamente blob.

SELECT CAST(OLD_PASSWORD("test") AS CHAR) 

También se puede convertir como otros tipos, e incluso restringir el tamaño, pero la mayoría de las veces sólo tiene que utilizar CHAR: http://dev.mysql.com/doc/refman/5.5/en/cast-functions.html#function_cast

+0

No sé si esto es una consecuencia del casting, pero hice exactamente lo que usted sugirió y las nuevas líneas no aparecieron. Recibí un texto muy largo en una sola línea. Sirvió para lo que necesitaba, de todos modos. –

+0

Ese es realmente el banco de trabajo MySQL, si hace clic derecho, ve en la ventana emergente, entonces se mostrará correctamente ... sí, es molesto. – CSTobey

19

realizar tres pasos:

  1. Ir a "Preferencias de Workbench" -> Elija "Editor de SQL" en "Resultados de la consulta": marque "Tratar BINARIO/VARBINARIO como cadena de caracteres no binarios"

  2. Reiniciar MySQL WorkBench.

  3. Ahora selecciona SELECT SUBSTRING(BLOB<COLUMN_NAME>,1,2500) FROM <Table_name>;

+5

gracioso cómo similar y más tarde esta es que la respuesta más alta de puntuación :-p – spioter

+0

que diablos ha votado este – Johny19

1

hay algunas cosas que usted puede hacer

SELECT GROUP_CONCAT(CAST(name AS CHAR)) 
FROM product 
WHERE id IN (12345,12346,12347) 

Si usted quiere pedir por la consulta se puede ordenar por fundición, así como a continuación

SELECT GROUP_CONCAT(name ORDER BY name)) 
FROM product 
WHERE id IN (12345,12346,12347) 

como dice en este blog

http://www.kdecom.com/mysql-group-concat-blob-bug-solved/

3

Banco de trabajo 6.3
Seguir alta respuesta anotando a continuación, utilizar UNCOMPRESS()

(En resumen:
1. Vaya a Editar> Preferencias
2. Elija SQL Editor
3. En SQL Ejecución, marque Tratar BINARIO/VARBINARIO como cadena de caracteres no binarios
4. Reinicie MySQL Workbench (no se le preguntará ni se le informará sobre este requisito).)

Entonces

SELECT SUBSTRING(UNCOMPRESS(<COLUMN_NAME>),1,2500) FROM <Table_name>; 

o

SELECT CAST(UNCOMPRESS(<COLUMN_NAME>) AS CHAR) FROM <Table_name>; 

Si usted acaba de poner UNCOMPRESS(<COLUMN_NAME>) puede hacer clic derecho burbuja y haga clic en "Open Value en el Editor".

-2

SELECT *, CONVERTIR (UNCOMPRESS (columna) el uso de "UTF-8") como la columna FROM nombre_tabla

Cuestiones relacionadas